{"description":"Trending threats, MITRE ATT\u0026CK coverage, and detection metadata. Fed continuously.","feed_url":"https://feed.craftedsignal.io/products/samlify--2.13.0/feed.json","home_page_url":"https://feed.craftedsignal.io/","items":[{"_cs_actors":[],"_cs_cpes":[],"_cs_cves":[],"_cs_exploited":false,"_cs_has_poc":false,"_cs_poc_references":[],"_cs_products":["samlify (\u003c 2.13.0)"],"_cs_severities":["high"],"_cs_tags":["xml-injection","privilege-escalation","saml"],"_cs_type":"advisory","_cs_vendors":["npm"],"content_html":"\u003cp\u003eA vulnerability in samlify versions prior to 2.13.0 allows for XML injection in SAML attribute values. The \u003ccode\u003ereplaceTagsByValue()\u003c/code\u003e function in \u003ccode\u003esrc/libsaml.ts\u003c/code\u003e only escapes placeholders when preceded by a quote (attribute context) but does not escape element text. This allows a normal user to inject arbitrary XML markup into an attribute value (e.g., email, name) and add new \u003ccode\u003e\u0026lt;saml:Attribute\u0026gt;\u003c/code\u003e elements inside the signed assertion. The Identity Provider (IdP) then signs the tampered assertion, and the Service Provider (SP) accepts the injected attributes as trusted. This issue, identified as CVE-2026-46490, enables privilege escalation if attributes are used for authorization decisions.\u003c/p\u003e\n\u003ch2 id=\"attack-chain\"\u003eAttack Chain\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eAn attacker identifies a SAML integration using a vulnerable version of samlify.\u003c/li\u003e\n\u003cli\u003eThe attacker crafts a malicious input containing XML markup designed to inject a new attribute (e.g., \u0026lsquo;role=admin\u0026rsquo;) into the SAML assertion. This input is typically injected via a user-controlled field such as email or name.\u003c/li\u003e\n\u003cli\u003eThe attacker authenticates with the Identity Provider (IdP), triggering the SAML assertion generation process.\u003c/li\u003e\n\u003cli\u003eThe IdP\u0026rsquo;s \u003ccode\u003ereplaceTagsByValue()\u003c/code\u003e function fails to properly escape the malicious XML markup within the \u003ccode\u003e\u0026lt;saml:AttributeValue\u0026gt;\u003c/code\u003e tag.\u003c/li\u003e\n\u003cli\u003eThe IdP signs the tampered SAML assertion, including the attacker-injected attribute.\u003c/li\u003e\n\u003cli\u003eThe IdP sends the modified SAML assertion to the Service Provider (SP).\u003c/li\u003e\n\u003cli\u003eThe SP uses \u003ccode\u003esp.parseLoginResponse()\u003c/code\u003e to parse the SAML assertion. Due to the injected attribute being signed by the IdP, the SP trusts the injected attribute.\u003c/li\u003e\n\u003cli\u003eThe attacker gains elevated privileges within the SP application because the SP uses the injected attribute (e.g., \u0026lsquo;role=admin\u0026rsquo;) for authorization decisions.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"impact\"\u003eImpact\u003c/h2\u003e\n\u003cp\u003eSuccessful exploitation of this vulnerability (CVE-2026-46490) allows attackers to escalate privileges within applications that rely on SAML for authentication and authorization. A normal user can inject arbitrary attributes (e.g., \u003ccode\u003erole=admin\u003c/code\u003e) into a signed assertion and have them parsed by \u003ccode\u003esp.parseLoginResponse()\u003c/code\u003e. This can lead to unauthorized access to sensitive data, modification of critical system settings, or other malicious activities, depending on how the application uses SAML attributes.\u003c/p\u003e\n\u003ch2 id=\"recommendation\"\u003eRecommendation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to samlify version 2.13.0 or later to remediate the XML injection vulnerability (CVE-2026-46490).\u003c/li\u003e\n\u003cli\u003eImplement server-side input validation and sanitization to prevent XML injection in SAML attribute values.\u003c/li\u003e\n\u003cli\u003eDeploy the Sigma rule \u003ccode\u003eDetect Samlify XML Injection Attempt in SAML Response\u003c/code\u003e to detect potential exploitation attempts.\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-05-21T17:15:51Z","date_published":"2026-05-21T17:15:51Z","id":"https://feed.craftedsignal.io/briefs/2026-05-samlify-xml-injection/","summary":"samlify's template substitution only escapes attribute contexts, leaving values inserted into element text (e.g., `\u003csaml:AttributeValue\u003e`) unescaped, allowing a normal user to inject XML markup into an attribute value and add new `\u003csaml:Attribute\u003e` elements inside the signed assertion, leading to privilege escalation when attributes are used for authorization (CVE-2026-46490).","title":"samlify XML Injection Vulnerability Allows Privilege Escalation (CVE-2026-46490)","url":"https://feed.craftedsignal.io/briefs/2026-05-samlify-xml-injection/"}],"language":"en","title":"CraftedSignal Threat Feed — Samlify (\u003c 2.13.0)","version":"https://jsonfeed.org/version/1.1"}