{"schemaVersion":3,"id":"CVE-2026-39406","aliases":["CGA-3hr4-pq6j-pcj2","CGA-3v9r-h55p-69r8","CGA-8g3j-5hh7-m56w","CGA-qp6v-wr8j-9837","GHSA-92pp-h63x-v22m","CGA-2vj9-wmg9-xhcq","CGA-3fgw-qg7m-h57v","CGA-463f-7gw5-f2fc","CGA-47j8-ffvc-25m2","CGA-48w3-52vj-hhr8","CGA-4rmj-qprp-q33g","CGA-4wf9-wmf4-qc3w","CGA-4x4m-j95q-vf57","CGA-534h-c539-8jq4","CGA-5hf8-3m9m-5qxj","CGA-6pqj-gw8v-w4w9","CGA-76q2-g4gj-ccjm","CGA-7gfm-pxx8-h446","CGA-7x3m-rh2h-h45x","CGA-8g8h-xm8r-qgj6","CGA-8mf2-jp2g-3jpj","CGA-8xf7-84xv-j8mf","CGA-9474-v752-4444","CGA-chxp-95rv-32fq","CGA-cx36-64jf-c777","CGA-f555-2rf7-fwqq","CGA-g6v6-wwcg-pc4x","CGA-gqpj-69mw-jqw3","CGA-gx73-w228-496v","CGA-hvqq-xx5c-6jq9","CGA-j356-m7r7-x39x","CGA-j9hp-h562-vc2v","CGA-jv3m-qcp7-2pr9","CGA-m257-rxgv-fjr6","CGA-rgmm-9h9v-fj8h","CGA-vj86-jmfh-rmxm","CGA-vrh8-gj5h-47j3","CGA-x827-rhjm-6vr6","CGA-xvwh-mrm5-pggw"],"status":"published","duplicateOf":null,"title":null,"description":"@hono/node-server allows running the Hono application on Node.js. Prior to 1.19.13, a path handling inconsistency in serveStatic allows protected static files to be accessed by using repeated slashes (//) in the request path. When route-based middleware (e.g., /admin/*) is used for authorization, the router may not match paths containing repeated slashes, while serveStatic resolves them as normalized paths. This can lead to a middleware bypass. This vulnerability is fixed in 1.19.13.","dates":{"published":"2026-04-08T14:34:30.543Z","modified":"2026-04-08T15:17:38.121Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":5.3,"severity":"medium","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":5.3,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Wolfi","score":5.3,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","exploitability":10,"impact":2.3,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Npm","score":5.3,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","exploitability":10,"impact":2.3,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Chainguard","score":5.3,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","exploitability":10,"impact":2.3,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":5.3,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.004,"percentile":0.32803,"severity":"low","asOf":"2026-10-20T00:00:00.000Z","change":{"pp":0.02400000000000002,"baselineDate":"2026-09-20T00:00:00.000Z","baselineScore":0.00376},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00376,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00376,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00376,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00376,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00376,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00376,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00376,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00376,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00376,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00376,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.004,"percentile":0.32803}],"last30":[{"date":"2026-09-20T00:00:00.000Z","score":0.00376,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00376,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00376,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00376,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.004,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.004,"percentile":0.32803}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-22","name":"Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","description":"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.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/22.html"}],"affected":[{"vendor":"chainguard","product":"gemini-cli","name":"gemini-cli","label":"gemini-cli","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/gemini-cli","purlType":"apk","versions":[{"text":"< 0.37.0-r0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.37.0-r0","eol":null,"hubHref":null},{"vendor":"chainguard","product":"kibana-9.1","name":"kibana-9.1","label":"kibana-9.1","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/kibana-9.1","purlType":"apk","versions":[{"text":"< 9.1.10-r10","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 9.1.10-r10","eol":null,"hubHref":null},{"vendor":"chainguard","product":"kibana-9.1-iamguarded","name":"kibana-9.1-iamguarded","label":"kibana-9.1-iamguarded","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/kibana-9.1-iamguarded","purlType":"apk","versions":[{"text":"< 9.1.10-r10","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 9.1.10-r10","eol":null,"hubHref":null},{"vendor":"chainguard","product":"kibana-9.2","name":"kibana-9.2","label":"kibana-9.2","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/kibana-9.2","purlType":"apk","versions":[{"text":"< 9.2.7-r5","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 9.2.7-r5","eol":null,"hubHref":null},{"vendor":"chainguard","product":"kibana-9.2-iamguarded","name":"kibana-9.2-iamguarded","label":"kibana-9.2-iamguarded","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/kibana-9.2-iamguarded","purlType":"apk","versions":[{"text":"< 9.2.7-r5","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 9.2.7-r5","eol":null,"hubHref":null},{"vendor":"chainguard","product":"kibana-9.3","name":"kibana-9.3","label":"kibana-9.3","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/kibana-9.3","purlType":"apk","versions":[{"text":"< 9.3.3-r4","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 9.3.3-r4","eol":null,"hubHref":null},{"vendor":"chainguard","product":"kibana-9.3-iamguarded","name":"kibana-9.3-iamguarded","label":"kibana-9.3-iamguarded","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/kibana-9.3-iamguarded","purlType":"apk","versions":[{"text":"< 9.3.3-r4","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 9.3.3-r4","eol":null,"hubHref":null},{"vendor":"chainguard","product":"langfuse-3","name":"langfuse-3","label":"langfuse-3","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/langfuse-3","purlType":"apk","versions":[{"text":"< 3.164.0-r5","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 3.164.0-r5","eol":null,"hubHref":null},{"vendor":"chainguard","product":"langfuse-3-worker","name":"langfuse-3-worker","label":"langfuse-3-worker","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/langfuse-3-worker","purlType":"apk","versions":[{"text":"< 3.164.0-r5","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 3.164.0-r5","eol":null,"hubHref":null},{"vendor":"chainguard","product":"langfuse-fips-3","name":"langfuse-fips-3","label":"langfuse-fips-3","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/langfuse-fips-3","purlType":"apk","versions":[{"text":"< 3.164.0-r3","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 3.164.0-r3","eol":null,"hubHref":null},{"vendor":"chainguard","product":"langfuse-fips-3-worker","name":"langfuse-fips-3-worker","label":"langfuse-fips-3-worker","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/langfuse-fips-3-worker","purlType":"apk","versions":[{"text":"< 3.164.0-r3","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 3.164.0-r3","eol":null,"hubHref":null},{"vendor":"chainguard","product":"langfuse-fips-3.152","name":"langfuse-fips-3.152","label":"langfuse-fips-3.152","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/langfuse-fips-3.152","purlType":"apk","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":null},{"vendor":"chainguard","product":"langfuse-fips-3.152-worker","name":"langfuse-fips-3.152-worker","label":"langfuse-fips-3.152-worker","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/langfuse-fips-3.152-worker","purlType":"apk","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":null},{"vendor":"chainguard","product":"librechat","name":"librechat","label":"librechat","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/librechat","purlType":"apk","versions":[{"text":"< 0.8.4-r5","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.8.4-r5","eol":null,"hubHref":null},{"vendor":"chainguard","product":"opensearch-dashboards-2","name":"opensearch-dashboards-2","label":"opensearch-dashboards-2","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/opensearch-dashboards-2","purlType":"apk","versions":[{"text":"< 2.19.5-r8","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 2.19.5-r8","eol":null,"hubHref":null},{"vendor":"chainguard","product":"opensearch-dashboards-2-fips","name":"opensearch-dashboards-2-fips","label":"opensearch-dashboards-2-fips","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/opensearch-dashboards-2-fips","purlType":"apk","versions":[{"text":"< 2.19.5-r7","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 2.19.5-r7","eol":null,"hubHref":null},{"vendor":"chainguard","product":"wazuh-dashboard","name":"wazuh-dashboard","label":"wazuh-dashboard","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/wazuh-dashboard","purlType":"apk","versions":[{"text":"< 4.14.5-r2","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 4.14.5-r2","eol":null,"hubHref":null},{"vendor":"chainguard","product":"wazuh-dashboard-fips","name":"wazuh-dashboard-fips","label":"wazuh-dashboard-fips","ecosystem":"Chainguard","cpePart":null,"purl":"pkg:apk/chainguard/wazuh-dashboard-fips","purlType":"apk","versions":[{"text":"< 4.14.5-r2","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 4.14.5-r2","eol":null,"hubHref":null},{"vendor":"wolfi","product":"langfuse-3","name":"langfuse-3","label":"langfuse-3","ecosystem":"Wolfi","cpePart":null,"purl":"pkg:apk/wolfi/langfuse-3","purlType":"apk","versions":[{"text":"< 3.164.0-r5","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 3.164.0-r5","eol":null,"hubHref":null},{"vendor":"wolfi","product":"langfuse-3-worker","name":"langfuse-3-worker","label":"langfuse-3-worker","ecosystem":"Wolfi","cpePart":null,"purl":"pkg:apk/wolfi/langfuse-3-worker","purlType":"apk","versions":[{"text":"< 3.164.0-r5","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 3.164.0-r5","eol":null,"hubHref":null},{"vendor":"hono","product":"node-server","name":"node-server","label":"node-server","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≤ 1.19.12","noFixRecorded":false,"fixedIn":null}],"versionsText":"≤ 1.19.12","eol":null,"hubHref":"/vendor/hono/node-server"},{"vendor":"honojs","product":"node-server","name":"node-server","label":"node-server","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 1.19.13","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.19.13","eol":null,"hubHref":"/vendor/honojs/node-server"},{"vendor":"@hono","product":"node-server","name":"@hono/node-server","label":"node-server","ecosystem":"Npm","cpePart":null,"purl":"pkg:npm/@hono/node-server","purlType":"npm","versions":[{"text":"< 1.19.13","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.19.13","eol":null,"hubHref":null}],"affectedCount":23,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/honojs/node-server/security/advisories/GHSA-92pp-h63x-v22m","label":"github.com/honojs/node-server/security/advisories/GHSA-92pp-h63x-v22m","hostname":"github.com","tags":["X Refsource CONFIRM","Advisory","WEB","Vendor Advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/39xxx/CVE-2026-39406.json","label":"github.com/CVEProject/cvelistV5/tree/main/cves/2026/39xxx/CVE-2026-39406.json","hostname":"github.com","tags":["Advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-39406","label":"nvd.nist.gov/vuln/detail/CVE-2026-39406","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/honojs/node-server/commit/025c30f55d589ddbe6048b151d77e904f67a8cc2","label":"github.com/honojs/node-server/commit/025c30f55d589ddbe6048b151d77e904f67a8cc2","hostname":"github.com","tags":["WEB"]},{"url":"https://github.com/honojs/node-server","label":"github.com/honojs/node-server","hostname":"github.com","tags":["PACKAGE"]},{"url":"https://github.com/honojs/node-server/releases/tag/v1.19.13","label":"github.com/honojs/node-server/releases/tag/v1.19.13","hostname":"github.com","tags":["WEB"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":["CGA-33F9-CXC3-PFP4"]},"timeline":[{"kind":"published","date":"2026-04-08T14:34:30.543Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-04-08T15:17:38.121Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":21,"level":"low","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-20T21:47:22.738Z","stale":false,"partial":false}}