<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Cpe:2.3:a:snipe_it:snipe_it:*:*:*:*:*:*:*:* - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/cpes/cpe2.3asnipe_itsnipe_it/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Thu, 24 Sep 2026 20:07:51 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/cpes/cpe2.3asnipe_itsnipe_it/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Stored XSS in Snipe-IT Uploaded Files API</title><link>https://feed.craftedsignal.io/briefs/2026-09-snipe-it-xss/</link><pubDate>Thu, 24 Sep 2026 20:07:51 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-snipe-it-xss/</guid><description>Snipe-IT contains a stored XSS vulnerability in the uploaded-files API due to the failure to apply safe-inline allowlists to XML documents, allowing authenticated attackers to execute arbitrary JavaScript in the victim's session context via CVE-2026-63498.</description><content:encoded><![CDATA[<p>Snipe-IT is vulnerable to stored cross-site scripting (XSS) via its uploaded-files API (CVE-2026-63498). The vulnerability exists because the API endpoint <code>GET /api/v1/{object_type}/{id}/files/{file_id}</code> honors an attacker-controlled <code>inline=true</code> query parameter for all uploaded files without verifying the safety of the content. While the non-API web controller correctly utilizes <code>StorageHelper::allowSafeInline()</code> to sanitize inline responses, the API controller fails to perform this check.</p>
<p>An authenticated user with permission to upload files can upload a malicious XSLT stylesheet and an XML document that references it via the <code>xml-stylesheet</code> instruction. When a victim views the XML file through the API with the <code>inline=true</code> parameter, the browser parses the XSLT and executes the embedded JavaScript within the context of the Snipe-IT origin. This allows the attacker to perform unauthorized actions on behalf of the victim, access sensitive information, or escalate privileges if a superuser is targeted. The vulnerability was reproduced in versions prior to 8.7.0.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker authenticates to the Snipe-IT instance with a user account permitted to upload files to at least one object.</li>
<li>Attacker prepares a malicious XSLT file containing an embedded payload (e.g., <code>&lt;script&gt;...&lt;/script&gt;</code>).</li>
<li>Attacker uses the API <code>POST /api/v1/{object_type}/{id}/files</code> to upload the XSLT stylesheet; the system stores the file as <code>text/xml</code>.</li>
<li>Attacker records the assigned ID of the stored XSLT file.</li>
<li>Attacker creates an XML document containing an <code>&lt;?xml-stylesheet ...?&gt;</code> processing instruction pointing to the URL of the previously uploaded XSLT file.</li>
<li>Attacker uploads the referencing XML document via the same API endpoint and records its ID.</li>
<li>Attacker lures an authenticated victim to visit the URL <code>.../files/{DATA_FILE_ID}?inline=true</code> within the Snipe-IT application.</li>
<li>Victim's browser loads the XML, interprets the stylesheet instruction, and executes the embedded JavaScript in the Snipe-IT session context.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows for complete compromise of the victim's session within the Snipe-IT application. Consequences include the ability to read same-origin data (asset, user, and license information), perform authenticated state-changing actions, and potentially achieve full administrative account compromise if a superuser interacts with the malicious file.</p>
<h2 id="recommendation">Recommendation</h2>
<ol>
<li>Upgrade Snipe-IT to version 8.7.0 or later to ensure the API controller correctly implements <code>StorageHelper::allowSafeInline()</code> for file downloads.</li>
<li>Review recent access logs for the <code>/api/v1/*/files/*</code> endpoints to identify unusual file upload patterns, particularly involving XML content.</li>
<li>Limit file upload permissions to the minimum number of users required for business operations to reduce the attack surface.</li>
</ol>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>web-application</category><category>xss</category><category>cve-2026-63498</category><category>web-vulnerability</category><category>privilege-escalation</category></item></channel></rss>