{"id":81945,"date":"2026-07-14T02:46:47","date_gmt":"2026-07-13T23:16:47","guid":{"rendered":"https:\/\/afaghhosting.net\/blog\/cve-2026-58489-hedgedoc-csrf-in-github-gist-export-callback\/"},"modified":"2026-07-14T02:46:47","modified_gmt":"2026-07-13T23:16:47","slug":"cve-2026-58489-hedgedoc-csrf-in-github-gist-export-callback","status":"publish","type":"post","link":"https:\/\/afaghhosting.net\/blog\/cve-2026-58489-hedgedoc-csrf-in-github-gist-export-callback\/","title":{"rendered":"CVE-2026-58489 &#8211; HedgeDoc: CSRF in GitHub Gist export callback"},"content":{"rendered":"<p>CVE ID :CVE-2026-58489<\/p>\n<p>  Published : July 13, 2026, 11:16 p.m. | 13\u00a0minutes ago<\/p>\n<p>  Description :HedgeDoc is an open source, real-time collaborative markdown notes application. Prior to 1.11.0, the GitHub Gist export flow created an OAuth2 \u00a0state\u00a0 value but only checked that it was present rather than validating it against the value expected for the user&#8217;s session. Because the state was not properly validated, an attacker could forge a callback URL containing their own valid GitHub OAuth code. When processing the callback, HedgeDoc used the victim&#8217;s logged-in session to select which note to export, but the attacker&#8217;s authorization code to determine which GitHub account received it. As a result, a logged-in victim who clicked a crafted link could export their own private, protected, or limited note directly into a Gist controlled by the attacker. This issue has been fixed in version 1.11.0.<\/p>\n<p>  Severity: 6.8 | MEDIUM<\/p>\n<p>  Visit the link for more details, such as CVSS details, affected products, timeline, and more&#8230;\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CVE ID :CVE-2026-58489 Published : July 13, 2026, 11:16 p.m. | 13\u00a0minutes ago Description :HedgeDoc is an open source, real-time collaborative markdown notes application. Prior to 1.11.0, the GitHub Gist export flow created an OAuth2 \u00a0state\u00a0 value but only checked that it was present rather than validating it against the value expected for the user&#8217;s &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-81945","post","type-post","status-publish","format-standard","hentry","category-vulnerability"],"_links":{"self":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/81945","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/comments?post=81945"}],"version-history":[{"count":0,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/81945\/revisions"}],"wp:attachment":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/media?parent=81945"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/categories?post=81945"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/tags?post=81945"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}