Nostromo nhttpd Directory Traversal Vulnerability (CVE-2019-16278)
Published In CISA KEV since Sources: pwn.watch, CVE.org
What is affected, what to do
Directory Traversal in the function http_verify in nostromo nhttpd through 1.9.6 allows an attacker to achieve remote code execution via a crafted HTTP request.
The vulnerability is being actively exploited; treat it as a priority. Update Nazgul Nostromo nhttpd to version 1.9.7. Immediate actions, mitigation and detection rules are in the runbook below.
- Affected
- Nazgul Nostromo nhttpd
lt *..1.9.7
- Nazgul Nostromo nhttpd
- Fixed in
- Nazgul Nostromo nhttpd
1.9.7
- Nazgul Nostromo nhttpd
Not sure whether and how you are affected? Ask a question about this vulnerability
Metrics
9.8
Priority
XIEM Effective CVSS: highest available CVSS rating from NVD and vendor data.
Source: NVD, CVSS v3
9.8
CVSS v3
Severity Critical on the scale from 0 to 10.
Source: pwn.watch, CVE.org
99.03 %
EPSS score
High — model estimates ≥ 50% chance of real-world exploitation within 30 days.
Source: FIRST EPSS, percentile 99.93
Show all metrics
- Severity
- Critical
Priority (0–325)
The priority score is a consolidated metric that condenses several individual signals into a single, action-guiding ranking: technical severity (CVSS), exploitation likelihood (EPSS), known-exploited status (KEV) and the context of the affected asset. The aim is to answer the only truly important question in vulnerability management: what first?
Read in glossary- 228.89 Methodology
Exploit maturity
An exploit is code or a technique that specifically uses a concrete vulnerability to force unintended behaviour — such as executing code or escalating privileges. It is the tool that turns a theoretical flaw into a practical attack.
Read in glossary- actively exploited
XIEM Effective CVSS
XIEM® is the tiered managed-security operating model from NEOSEC and a registered trademark of NEOSEC GmbH. It extends classic SIEM — the central collection, normalisation and correlation of security-relevant events — with endpoint forensics, network visibility and deception technology, and consolidates them into three building tiers: Sentry, Orchestrate and Command.
Read in glossary- 9.8 Methodology
CVSS v3
CVSS is the globally established, open standard for assessing the technical severity of a vulnerability on a scale from 0 to 10. It describes how easily a flaw can be exploited and what damage it can cause — but not how likely its actual exploitation is. CVSS and the complementary EPSS deliberately answer different questions.
Read in glossary- 9.8
EPSS score
The EPSS score is the absolute model output for an individual vulnerability: the estimated probability of real-world exploitation within the next 30 days, expressed as a value between 0 and 1 (i.e. 0 % to 100 %). A score of 0.42 means „the model estimates a 42 % chance of real-world exploitation within 30 days“.
Read in glossary- 99.03 %
- High — model estimates ≥ 50% chance of real-world exploitation within 30 days.
EPSS percentile
The EPSS percentile is the relative position of a vulnerability within all EPSS-scored CVEs, expressed as a value between 0 and 1. A percentile of 0.90 means „this CVE has a higher EPSS score than 90 % of all other scored CVEs“. Unlike the EPSS score, it is not a probability — but a positioning within a ranking.
Read in glossary- 99.93
- Critical — this CVE ranks in the top fifth of all CVEs scored today (rank ≥ 80%).
KEV status
The KEV catalogue is a list maintained by the US authority CISA of vulnerabilities for which active exploitation in the wild has been confirmed. It answers not the question „how severe?“ but „is it already being attacked?“ — thereby sharply prioritising patching.
Read in glossary- Actively exploited
- Published
In CISA KEV since
The KEV catalogue is a list maintained by the US authority CISA of vulnerabilities for which active exploitation in the wild has been confirmed. It answers not the question „how severe?“ but „is it already being attacked?“ — thereby sharply prioritising patching.
Read in glossary- CISA assessment (SSVC)
- Exploitation: active · automatable · Technical impact: total
- Source: CISA Vulnrichment, as of 20 August 2025
CWE
CWE is a catalogue of typical weakness types in software and hardware — such as flawed input validation, unsafe memory handling or poor authentication. Where a CVE names a concrete vulnerability in a concrete product, a CWE describes the underlying class of defect.
Read in glossary- CWE-22
Response and mitigation
Why act now?
Prioritisation rationale
This CVE sits on KEV because the exploit is trivially automatable, requires no authentication, is reachable over plain HTTP and has been part of mass-scanning kits and Metasploit modules since 2019 — its exploitation likelihood is among the highest observed anywhere. Typical targets are small perimeter appliances, IoT gateways and legacy webservers where nhttpd ships as a lightweight daemon and is often forgotten. Treat every Internet-exposed instance as a P1 incident and internal instances as P2, since lateral movement after initial compromise remains realistic. CISA records no confirmed ransomware use, but unauthenticated RCE of this quality is a textbook initial-access vector for any follow-on payload.
Runbook step 1
Immediate response (0-24 h)
- Upgrade every Nostromo nhttpd instance to version 1.9.7 or later — the fix inside
http_verify()is the only complete remediation. Source: nazgul/nostromo project repository. - Enumerate exposure:
curlornmapagainst your perimeter ranges on TCP/80, 443, 8080 and grep forServer: nostromobanners. Place any externally reachable instance behind a reverse proxy, WAF or temporary firewall rule immediately. - If a patch cannot ship today, force nhttpd into a chroot (
SERVER_CHROOTinnhttpd.conf, then restart). CISA explicitly notes the RCE chain only succeeds on non-chrooted servers, so chroot alone neutralises the known exploitation path. - Audit the service account: if nhttpd runs as root or a privileged user, reconfigure
SERVER_UIDandSERVER_GIDto a dedicated unprivileged user to shrink the blast radius of successful code execution. - Incident readiness: preserve the last 90 days of access logs offline, grepping for traversal patterns (
%0a,..%2f,/.%0d) before any patch or rebuild touches the host.
- Upgrade every Nostromo nhttpd instance to version 1.9.7 or later — the fix inside
Runbook step 2
Mitigation layers
- Network segmentation: remove nhttpd hosts from the direct Internet path. A fronting reverse proxy (nginx, HAProxy, Apache) terminates HTTP and normalises path encoding, which strips the raw CRLF sequences the exploit relies on.
- WAF/IPS: signature on HTTP requests containing
%0d%0aor literal\r\ninside the request path or POST body followed by shell metacharacters (;,|,`,$(). Enable the Emerging Threats community rules for CVE-2019-16278 (sid 2027881 range) in Snort/Suricata. - Host hardening: mount
/tmp,/var/tmpand any writable directory of the nhttpd user asnoexec. Apply an AppArmor or SELinux profile that restricts nhttpd to read-only access on the document root and execution of its own binary only. - IAM/least-privilege: strip SUID bits in the service account's PATH, audit sudo entries for the nhttpd user and reduce to none. Never share credentials between the webserver and a backend database.
- Egress filtering: constrain outbound traffic from the nhttpd host to an explicit allow-list (DNS resolver, package mirror, log shipper). Block common reverse-shell ports (4444, 1337, 9001) and DNS tunnelling to unusual destinations.
- Configuration: disable
HOMEDIRSif unused — UserDir paths expand the attack surface. MinimiseSERVER_NAMEand error output to hamper fingerprinting.
Runbook step 3
Detection rules
- Web access log: hunt for requests containing URL-encoded CRLF (
%0d%0a,%0a) or traversal sequences followed bysh,bash,/bin/. KQL shape:WebLogs | where UrlPath matches regex "(%0[ad]|\\.\\./).*(sh|bash|id|uname|wget|curl)". - Process telemetry (auditd / Sysmon-for-Linux EID 1): parent
nhttpdspawning children such as/bin/sh,wget,curl,python,perl,nc. A healthy deployment only serves static content and should never fork a shell. Sigma shape:parent_image: '*/nhttpd' AND image: ('*/sh', '*/bash', '*/wget', '*/curl', '*/nc'). - Network (Zeek
conn.log/ Suricata): new outbound connections from the nhttpd host to non-RFC1918 destinations on uncommon ports within 60 seconds of an inbound POST request — correlate in the SIEM. - Filesystem (auditd
-w): watches on/tmp,/var/tmp, document root and the nhttpd user's home directory for file creation with executable bit set; alert onchmod +xwithin these paths. - HTTP request-size anomaly: POST requests without
Content-Type: multipart/form-datacarrying bodies larger than 512 bytes and containing non-ASCII characters in the path. Baseline deviation of mean plus three standard deviations.
- Web access log: hunt for requests containing URL-encoded CRLF (
Detection rules
No NEOSEC detection rule is available for this vulnerability yet.
Classification under NIS2 and CRA
Rule-based classification from exploitation status and severity. It does not replace a case-by-case assessment.
NIS2
NIS2 is EU Directive (EU) 2022/2555 to raise the level of cybersecurity across the Union. It substantially broadens obligations compared with the first NIS directive: more sectors, mandatory risk management, staged reporting duties and personal accountability of senior management.
Read in glossary- Actively exploited: treat the vulnerability as a priority in vulnerability handling under Art. 21(2)(e) NIS2. If it is exploited in your environment, check the reporting obligation under Art. 23 (early warning within 24 hours).
CRA
The CRA is EU Regulation (EU) 2024/2847 setting horizontal cybersecurity requirements for „products with digital elements“ — from industrial controllers and software to connected consumer devices. For the first time manufacturers must ensure security across the entire product lifecycle, handle vulnerabilities and provide security updates.
Read in glossary- Since 11.09.2026, manufacturers of affected products with digital elements must report actively exploited vulnerabilities under Art. 14 CRA, with an early warning within 24 hours via ENISA's single reporting platform.
ISO/IEC 27001
ISO/IEC 27001 is the internationally leading standard for an information security management system (ISMS). It describes a risk-based, process-oriented framework to systematically plan, implement, review and improve information security.
Read in glossary- Control A.8.8, management of technical vulnerabilities: assess relevance to your systems, plan remediation and keep evidence.
Description
Directory Traversal in the function http_verify in nostromo nhttpd through 1.9.6 allows an attacker to achieve remote code execution via a crafted HTTP request.
Source: pwn.watch, NVD (NIST), cvelistv5, CISA KEV Catalog, CVE.org (MITRE)
Affected products
The following versions are affected. Older releases of the same product line are also vulnerable unless stated otherwise.
| Affected versions | Fixed in | ||
|---|---|---|---|
| nazgul | nostromo_nhttpd |
|
|
Weakness classes (CWE)
CWE-22Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Base
The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.
Entry at MITRE CWE-22
Public exploit references
Publicly reported proof-of-concepts, exploit modules and detection templates for this vulnerability. NEOSEC links to the original sources only and does not provide any exploit code.
| CISA KEV Catalog | CISA Known Exploited Vulnerability (opens in a new tab)cisa.gov | actively exploited | |
| Packet Storm | Nostromo 1.9.6 Directory Traversal Remote Command Execution (opens in a new tab)packetstormsecurity.com | PoC (publicly reported)reported, not verified | — |
| Packet Storm | nostromo 1.9.6 Remote Code Execution (opens in a new tab)packetstormsecurity.com | PoC (publicly reported)reported, not verified | — |
References & sources
- nazgul.chdev/nostromo_cl.txtx_refsource_MISC, Release notes
- sp0re.shx_refsource_MISC, Broken link, Not applicable
- git.sp0re.shsp0re/Nhttpd-exploitsx_refsource_MISC, Broken link, Exploit, Third-party advisory
- packetstormsecurity.comfiles/155045/Nostromo-1.9.6-Directory-Traversal-Remote-Command-…x_refsource_MISC, Exploit, Third-party advisory, Vulnerability database
- packetstormsecurity.comfiles/155802/nostromo-1.9.6-Remote-Code-Execution.htmlx_refsource_MISC, Exploit, Third-party advisory, Vulnerability database
- cisa.govknown-exploited-vulnerabilities-catalog?field_cve=CVE-2019-16278government-resource, US government resource
- pwn.watchpwn.watch: Nostromo nhttpd Directory Traversalpwn-watch
- nazgul.chNostromo advisory: CVE-2019-16278pwn-watch
- NVD (NIST)NVD: CVE-2019-16278pwn-watch
- cisa.govCISA Known Exploited Vulnerabilities Catalogpwn-watch
Embed badge
Show the severity and KEV status of this vulnerability on your site – with a link back here. The image is updated hourly.
<a href="https://intel.neosec.eu/en/cve/CVE-2019-16278"><img src="https://intel.neosec.eu/badge/cve/CVE-2019-16278.svg?lang=en" alt="CVE-2019-16278 – NEOSEC Intel" height="20"></a>