CISA's own traffic-analysis suite carries six CVEs, including an archive bomb that starves shared mounts
CISA's advisory for its own network traffic analysis suite lists denial of service and arbitrary code execution: unbounded archive extraction, traversal in two layers, and uploads that run PHP as www-data.
The Watch · Security desk
What happened
- CISA advisory summary: successful exploitation of these vulnerabilities could allow an attacker to cause a denial-of-service condition or execute arbitrary code.
- Affected versions listed: Malcolm <26.06.1 (CVE-2026-55676); Malcolm <26.07.0 (CVE-2026-63133, CVE-2026-63134, CVE-2026-63177); Malcolm <=26.07.1 (CVE-2026-19670, CVE-2026-19671).
- The advisory covers six distinct CVEs.
- Malcolm is a network traffic analysis tool suite, and the affected product is listed as CISA Malcolm with CISA as vendor.
- Background section: critical infrastructure sector Information Technology; countries/areas deployed worldwide; company headquarters location United States.
Why it matters
CISA has published an advisory covering six CVEs in Malcolm, the network traffic analysis tool suite it ships itself, warning that successful exploitation could cause a denial-of-service condition or allow arbitrary code execution [2] [3] [15] [4]. The suite is deployed worldwide and categorised under the Information Technology critical infrastructure sector, which is to say the affected installs are mostly other people's monitoring stacks [5].
The most consequential item for anyone running Malcolm on shared storage is the extraction logic. Before version 26.07.0, `safe-extract.py` unpacked uploaded archives with no limit on entry count, directory depth, total entries, or output size [6]. A small malicious archive stuffed with directory or file entries makes the filebeat processing container create an unbounded number of filesystem objects, exhausting inodes or filesystem metadata and denying service not only to the processing pipeline but to any service sharing the same mount [7]. CISA classifies it as CWE-770, allocation of resources without limits or throttling [8]. The blast radius is the interesting part: the collateral is whatever else you colocated on that volume.
The same script had a second problem. File extraction was protected by libarchive's secure flags, but directory entries were created with a raw `os.makedirs(os.path.join(dest, entry.pathname))` and no traversal protection, so an archive containing a `../` sequence or an absolute path in a directory entry creates directories outside the intended extraction target [9].
The code execution path runs through the file-upload component. Its FilePond PHP backend accepts uploads at `POST /server/php/submit.php` and stores them in a directory served by the same nginx and php-fpm instance [10]. The allow-list meant to restrict file types is an empty array by default, making the type check a no-op that accepts every extension, and the filename sanitizer leaves `.php` intact [11]. Committed files land under `/var/www/upload/server/php/files`, the component's nginx routes any URL ending in `.php` to php-fpm, and an authenticated GET then runs the uploaded code as `www-data` [12]. Before 26.06.1, in RBAC mode, that endpoint was reachable by the granular `ROLE_UPLOAD` role, intended only for submitting capture files, so a user holding upload-only rights got arbitrary PHP execution inside the file-upload container [13].
RBAC itself fell open elsewhere. The role checks enforced in the nginx OpenResty Lua layer evaluated the raw, unnormalized `ngx.var.request_uri` while nginx routed on the normalized path, so an authenticated low-privilege user could prepend a traversal segment such as `/x/../upload/...` and have nginx deliver the request to a restricted backend while the Lua rule matched nothing and allowed it [1].
Version 26.06.1 fixes the upload flaw and 26.07.0 fixes the extraction and RBAC issues, with CISA pointing to pull requests 1026 and 1043 respectively [14]. Two of the six, CVE-2026-19670 and CVE-2026-19671, are listed as affecting versions up to and including 26.07.1, and the advisory material supplied contains no description of them and no named fixed version [16].
Watch for a release above 26.07.1 and for detail on those two open CVEs; until then, the honest read is that the current version is still listed as affected. Operators should also check whether their Malcolm mount is shared with anything they would miss.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence78
- Adoption30
- Hype gap+6
- Incentives55
- Confidence68
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
Prior to version 26.07.0, role-based access control enforced in the Nginx OpenResty Lua layer evaluates the raw, unnormalized ngx.var.request_uri while Nginx routes requests using the normalized path; an authenticated low-privilege user can prepend a traversal segment (for example /x/../upload/...) so Nginx routes the request to a restricted backend while the Lua role check matches no rule and falls open. Version 26.07.0 fixes the issue.
- [2]
CISA advisory summary: successful exploitation of these vulnerabilities could allow an attacker to cause a denial-of-service condition or execute arbitrary code.
- [3]
Affected versions listed: Malcolm <26.06.1 (CVE-2026-55676); Malcolm <26.07.0 (CVE-2026-63133, CVE-2026-63134, CVE-2026-63177); Malcolm <=26.07.1 (CVE-2026-19670, CVE-2026-19671).
- [4]
Malcolm is a network traffic analysis tool suite, and the affected product is listed as CISA Malcolm with CISA as vendor.
- [5]
Background section: critical infrastructure sector Information Technology; countries/areas deployed worldwide; company headquarters location United States.
- [6]
Prior to version 26.07.0, safe-extract.py extracts uploaded archives with no limit on entry count, directory depth, total entries, or output size.
- [7]
A small malicious archive containing a large number of directory or file entries causes the filebeat processing container to create an unbounded number of filesystem objects, exhausting inodes or filesystem metadata and denying service to the processing pipeline and any service sharing the same mount.
- [8]
Relevant CWE for the unbounded extraction issue: CWE-770 Allocation of Resources Without Limits or Throttling.
- [9]
Prior to 26.07.0, safe-extract.py protects file extraction with libarchive's secure flags but creates directory entries with a raw os.makedirs(os.path.join(dest, entry.pathname)) that has no traversal protection; an uploaded archive with a directory entry containing a ../ sequence or an absolute path causes the filebeat processing container to create directories outside the intended extraction directory. Relevant CWE: CWE-22 path traversal.
- [10]
The file-upload component (FilePond PHP backend) accepts uploads at POST /server/php/submit.php and stores them in a directory served by the same nginx and php-fpm instance.
- [11]
The allow-list that should restrict accepted file types is an empty array by default (file-upload/php/config.php:16), so the type check is a no-op and every extension is accepted; the filename sanitizer keeps the .php extension intact.
- [12]
Committed files land in /var/www/upload/server/php/files (file-upload/php/config.php:7), the component's nginx routes any URL ending in .php to php-fpm, and an authenticated GET of the uploaded .php file executes the code as www-data.
- [13]
Prior to version 26.06.1, in RBAC mode, the upload endpoint is reachable by the granular ROLE_UPLOAD role (nginx/lua/nginx_auth_helpers.lua:71), a role intended only for submitting capture files, so a user holding the upload-only role runs arbitrary PHP as www-data inside the file-upload container. Relevant CWE: CWE-434 unrestricted upload of file with dangerous type.
- [14]
Remediation: Malcolm version 26.06.1 addresses CVE-2026-55676, referencing cisagov/Malcolm pull request 1026; Malcolm version 26.07.0 addresses CVE-2026-63133, CVE-2026-63134 and CVE-2026-63177, referencing cisagov/Malcolm pull request 1043.
- [15]
The advisory covers six distinct CVEs.
- [16]
CVE-2026-19670 and CVE-2026-19671 are listed as affecting Malcolm versions up to and including 26.07.1, and the supplied advisory material contains no vulnerability description or fixed version for them.
Get this ledger inside ChatGPT. Ask about any of our stories and the answer brings its figure, each claim’s verdict and the sources. Free, no account.
Sources
1 independent publisher whose own reporting we read for this story.
- cisa.govCISA Malcolm
1 article · August 18, 2026
Topics and entities
Follow any of these and your For You feed starts watching them — no settings page required.