DEBSECAN(1)
π DEBSECAN β Debian Security Analyzer π
okay bestie, sit down, hydrate, because we're about to talk about debsecan and honestly? it's giving main character energy in the "keeping your Debian box from getting wrecked" department. it's the Debian Security Analyzer, it's a section 1 manual page, and it is so much cooler than it sounds.
β¨ NAME β¨
debsecan β Debian Security Analyzer. that's it, that's the girl. π
πΈ SYNOPSIS πΈ
debsecan options...
yeah that's the whole thing, she takes options, she does the work, she slays. π
π¦ DESCRIPTION π¦
so what does debsecan actually do? she looks at the list of installed packages on the current host β your host, right now, the one you're on β and she reports the vulnerabilities found on the system. that's it. that's the vibe check. she reads your packages, she tells you what's vulnerable. no cap. π
π OPTIONS π
--suitecount β pick a specific suite. listen, if you tell her the right suite,debsecangives you way more informative output (obsolete packages included, hooray π). but here's the thing: you have to use the release code name β so"sid"β and not the temporal name, so not"unstable". she said what she said.--whitelistfile β change the name of the whitelist file. new file, new you. π«Ά--add-whitelist,--remove-whitelist,--show-whitelistβ add entries to the whitelist, remove entries from the whitelist, or print the whitelist to standard output. three icons, one job. see the CHANGING THE WHITELIST section below bestie, it's right there. β--sourceurl β override the default download URL for vulnerability data. custom source, custom era. π--statusfile β evaluate a differentdpkgstatus file. not the usual one, a different one. π--formatformat β change the output format, and honestly there are so many options:- if format is
summary(which is the default), you get a short summary for each vulnerability. simpleis likesummary, except only the bug packages names get printed. minimal, clean, aesthetic. β¨bugsandpackages: for these,debsecanlists the names of vulnerabilities and binary packages, respectively.--format detailrequests a verbose output format, showing all available data. all of it. the whole lore. πreportis the format used for email reports.
- if format is
--line-lengthcharacters β specifies the line length in report mode. the default is72. respect the margin bestie. π--mailtomailbox β the--mailtooption instructsdebsecanto send the report to the email address mailbox. no report is sent if there were no changes since the last invocation with--update-history. this option requires the--format reportoutput format. the option value may contain macros β see the CONFIGURATION FILE MACROS section below. π--only-fixedβ only list vulnerabilities for which a fix is available in the archive. > heads up bestie: it can happen that a fix is listed even though the package has not been built for the system's architecture and is not yet available for download. and also: if you use this option, you also must specify the correct suite using--suite. both things. no skipping. π--no-obsoleteβ do not list any obsolete packages (see below). using this option is not recommended, because it hides real vulnerabilities on some systems, not just false positives. so like, it's a vibe but it's a lying vibe. π©--historyfile β change the name of the history file used by--format report.--disable-https-checkβ turn off certificate validation for HTTPS. yes, really, that's what it does. π--update-historyβ update the vulnerability status information after reporting it using--format report.--cronβ internal option used for invocations fromcron. it checks if the vulnerability data has already been downloaded today, and in that case, further processing is skipped. seedebsecan-create-cron(8)for instructions on how to create a suitable cron entry. π°οΈ--configfile β sets the location of the configuration file.--helpβ display a short help message and exit. she's helpful, she's brief, she's gone. π¨--versionβ display version information and exit. know your queen's birthday. π
π CONFIGURATION FILE π
the configuration file contains the following variables. it follows name=value shell syntax. if value contains white space, it must be surrounded by double quotes. some variables may contain macros β see the CONFIGURATION FILE MACROS section below. β¨
MAILTOβ sets the email address to which reports are sent in--cronmode. may contain macros.REPORTβ controls whetherdebsecandoes any processing whatsoever in--cronmode. permitted values:trueandfalse. so basically yes or no, queen. πSOURCEβ controls the URL from which vulnerability information is fetched. if empty, the built-in default is used.SUITEβ sets the default value of the--suiteoption (see there).SUBJECTβ changes the subject line of reports. may contain macros. π§DISABLE_HTTPS_CHECKβ disables HTTPS certificate checking, just like the--disable-https-checkcommand line option. twins. π―
π CONFIGURATION FILE MACROS π
macro processing replaces strings of the form %s(key)s with system-dependent values. the supported keys are:
hostnameβ the host name on whichdebsecanruns, without the domain name part. just the first name, no last name, we're casual here. π«Άfqdnβ the fully-qualified domain name of the host on whichdebsecanruns. the full government name. πipβ the IP address of the host on whichdebsecanruns. > note: this may be inaccurate on multi-homed systems. she said it, not me. π
π CHANGING THE WHITELIST π
you can use the --add-whitelist and --remove-whitelist options to change the whitelist. whitelisted vulnerabilities are not included in the reports. so basically it's the "we don't talk about that one" list. π€«
for example,
debsecan --add-whitelist CVE-2005-4601
ignores the vulnerability CVE-2005-4601 completely. completely completely. π
while
debsecan --add-whitelist CVE-2005-4601 perlmagick
ignores it only as far as the perlmagick is concerned. (this is the same format that is produced by the --format simple option.) so specific. so targeted. we love a precise queen. β¨
to remove all whitelist entries for the CVE-2005-4601 vulnerability, use:
debsecan --remove-whitelist CVE-2005-4601
if you want to remove an entry for a specific vulnerability/package pair, list the package name explicitly, as in:
debsecan --remove-whitelist CVE-2005-4601 imagemagick
you can list multiple vulnerability and packages. for example,
debsecan --add-whitelist CVE-2005-4601 \
CVE-2006-0082 imagemagick perlmagick
whitelists CVE-2005-4601 for all packages, and CVE-2006-0082 for the imagemagick and perlmagick packages only. see? she's flexible. she contains multitudes. π¦
π CAVEATS π
okay bestie, this is the part where we get real. buckle up.
much like the official Debian security advisories, debsecan's vulnerability tracking is mostly based on source packages. this can be confusing because tools like dpkg only display binary package names. therefore, debsecan displays the more familiar binary package names. this has the unfortunate effect that all binary packages (including packages containing only documentation, for example) are flagged as vulnerable, and not only those packages which actually contain the vulnerable code. > so yeah, docs-only packages catching strays. it's not personal, it's structural. π
if the correct --suite option is specified, debsecan may mark some packages as obsolete. this means that the binary package in question has been removed from the archive. in this case, you need to update all the packages depending on the obsolete package, and subsequently remove the obsolete package. do it in that order bestie, i'm begging. π©
for certain architectures, build daemons may lag considerably. in such case, debsecan may incorrectly mark a package as fixed, even if an update is not yet available in the Debian archive. the build daemons are simply not beating the allegations. π
note that debsecan version uses the --suite option only to determine the availability of corrected packages and to detect obsolete packages. so if you specify the wrong suite, only the information on available security updates and obsolete packages is wrong β but the list of vulnerabilities is correct. so like, half wrong, half iconic. π
mixing packages from different Debian releases is supported, as long as the packages still carry their official version numbers. unknown package versions (from backported packages, for example) are compared to the version in Debian unstable only, which may lead to incorrect reports. > you've been warned. π’
β EXAMPLES β
this command prints all package names for which security fixes are available:
debsecan --suite suite --format packages --only-fixed
if you pass this output to apt-get, you can download new packages which contain security fixes. for example, if you are running sid:
apt-get install \
$(debsecan --suite sid --format packages --only-fixed)
look at that. pipeline. automation. main character energy. π₯
the following command can be invoked periodically, to get notifications of new security issues:
debsecan --suite suite --format report \
--update-history --mailto root
see debsecan-create-cron(8) for a tool which creates a suitable cron entry. she'll handle the schedule, you handle the vibes. π°οΈβ¨
πΈ ENVIRONMENT πΈ
https_proxyβ this environment variable instructsdebsecanto use a proxy server to fetch the vulnerability data. it must be of the formhttp://proxy.example.net:8080/(mimicking a URL). yes, it's pretending to be a URL, that's the bit. π
π FILES π
/etc/default/debsecanβ built-in location of the configuration file./var/lib/dpkg/statusβ file from which the package information is fetched by default.
π AUTHOR π
debsecan was written by Florian Weimer. thank you for your service king. π«‘
π SEE ALSO π
dpkg(1), debsecan-create-cron(8), apt-get(8) β go read those too bestie, they're in the group chat. π
and that's the whole page!! dated 2005-12-23, from the DEBSECAN(1) manual, and honestly it's aged like fine wine. go secure your packages, you absolute icon. slay, stay patched, and never skip the whitelist section. ππ¦β¨
π¦ where this page comes from
- debian bookworm: debsecan 0.4.20.1
- debian trixie: debsecan 0.4.20.1
- ubuntu jammy: debsecan 0.4.20.1
- ubuntu noble: debsecan 0.4.20.1
- ubuntu resolute: debsecan 0.4.20.1build1
- ubuntu stonking: debsecan 0.4.20.2 Β· GPL-2.0-or-later
- Copyright (C) 2005, 2007 Florian Weimer
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms