{"schemaVersion":3,"id":"CVE-2026-29087","aliases":["CGA-45ch-3cq5-jv73","CGA-6jff-xc3q-c2wj","CGA-jxgp-4f9f-jm3p","CGA-xmx4-844f-hmcp","GHSA-wc8c-qw6v-h7f6","CGA-3254-9xx3-68r7","CGA-4xcf-52c7-fh43","CGA-5jpr-8wj4-25w7","CGA-5r8r-w5f8-jcv6","CGA-5w85-g6jj-v94v","CGA-6jh9-j8v4-hp66","CGA-7p7p-4mmv-pggm","CGA-7phf-w45x-p54c","CGA-83qw-vxqx-2wrx","CGA-8w6c-p7qc-f728","CGA-cp8v-4qf7-crvq","CGA-gfx2-rg5x-h6mw","CGA-h4mj-m379-q47m","CGA-h6rj-4p89-489w","CGA-hv59-r89w-w7gh","CGA-hxf3-342v-p5vf","CGA-j4hc-3mf4-52rr","CGA-j9c4-g3q9-pmx3","CGA-jm2g-wfxw-c2v6","CGA-jm3h-65p3-h45g","CGA-mc6v-4gcp-r8x9","CGA-mqqg-gfvv-xfj5","CGA-mr9c-r54x-9hw2","CGA-vgcm-w9p4-gfgh"],"status":"published","duplicateOf":null,"title":null,"description":"@hono/node-server allows running the Hono application on Node.js. Prior to version 1.19.10, when using @hono/node-server's static file serving together with route-based middleware protections (e.g. protecting /admin/*), inconsistent URL decoding can allow protected static resources to be accessed without authorization. In particular, paths containing encoded slashes (%2F) may be evaluated differently by routing/middleware matching versus static file path resolution, enabling a bypass where middleware does not run but the static file is still served. This issue has been patched in version 1.19.10.","dates":{"published":"2026-03-06T17:03:30.412Z","modified":"2026-03-06T18:02:36.517Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":7.5,"severity":"high","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":7.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Wolfi","score":7.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","exploitability":10,"impact":6,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Npm","score":7.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","exploitability":10,"impact":6,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Chainguard","score":7.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","exploitability":10,"impact":6,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":7.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00429,"percentile":0.35782,"severity":"low","asOf":"2026-10-20T00:00:00.000Z","change":{"pp":0.10200000000000005,"baselineDate":"2026-09-20T00:00:00.000Z","baselineScore":0.00327},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00327,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00327,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00327,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00327,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00327,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00327,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00327,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00327,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00327,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00327,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00429,"percentile":0.35782}],"last30":[{"date":"2026-09-20T00:00:00.000Z","score":0.00327,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00327,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00327,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00327,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00429,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00429,"percentile":0.35782}]},"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-863","name":"Incorrect Authorization","description":"The product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check.","type":"weakness","status":"Incomplete","abstraction":"Class","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/863.html"}],"affected":[{"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-r7","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 9.1.10-r7","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-r7","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 9.1.10-r7","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.160.0-r1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 3.160.0-r1","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.160.0-r1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 3.160.0-r1","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.160.0-r1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 3.160.0-r1","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.160.0-r1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 3.160.0-r1","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.3-r0","noFixRecorded":false,"fixedIn":null},{"text":"< 0.8.2-r7","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.8.3-r0 | < 0.8.2-r7","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-r3","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 2.19.5-r3","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-r1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 2.19.5-r1","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.160.0-r1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 3.160.0-r1","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.160.0-r1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 3.160.0-r1","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.10","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.19.10","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.10","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.19.10","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.10","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 1.19.10","eol":null,"hubHref":null}],"affectedCount":18,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/honojs/node-server/security/advisories/GHSA-wc8c-qw6v-h7f6","label":"github.com/honojs/node-server/security/advisories/GHSA-wc8c-qw6v-h7f6","hostname":"github.com","tags":["X Refsource CONFIRM","Advisory","WEB","Vendor Advisory"]},{"url":"https://github.com/honojs/node-server/commit/455015be1697dd89974a68b70350ea7b2d126d2e","label":"github.com/honojs/node-server/commit/455015be1697dd89974a68b70350ea7b2d126d2e","hostname":"github.com","tags":["X Refsource MISC","FIX","WEB","Patch"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/29xxx/CVE-2026-29087.json","label":"github.com/CVEProject/cvelistV5/tree/main/cves/2026/29xxx/CVE-2026-29087.json","hostname":"github.com","tags":["Advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-29087","label":"nvd.nist.gov/vuln/detail/CVE-2026-29087","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/honojs/node-server","label":"github.com/honojs/node-server","hostname":"github.com","tags":["PACKAGE"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":["CGA-676W-93CV-MF32"]},"timeline":[{"kind":"published","date":"2026-03-06T17:03:30.412Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-03-06T18:02:36.517Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":30,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-21T00:06:44.313Z","stale":false,"partial":false}}