<?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>Sakai - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/vendors/sakai/</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>Mon, 24 Aug 2026 21:58:07 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/sakai/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 Sakai Conversations</title><link>https://feed.craftedsignal.io/briefs/2026-08-sakai-xss/</link><pubDate>Mon, 24 Aug 2026 21:58:07 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-08-sakai-xss/</guid><description>The Sakai Conversations tool suffers from a stored cross-site scripting (XSS) vulnerability, CVE-2026-54049, allowing authenticated users to execute arbitrary JavaScript in the browsers of other site members.</description><content:encoded><![CDATA[<p>The Sakai Conversations tool, part of the Sakai LMS framework, contains a stored XSS vulnerability (CVE-2026-54049) affecting versions 23.0 through 23.3. The vulnerability stems from the Conversations REST API failing to sanitize user-provided message input before persisting it to the database, combined with the frontend's use of LitElement's <code>unsafeHTML()</code> directive to render these messages.</p>
<p>An attacker with any authenticated site role can inject malicious payloads via the <code>message</code> field in the <code>/api/sites/{siteId}/topics</code> or <code>/api/sites/{siteId}/topics/{topicId}/posts</code> endpoints. When other users navigate to the affected conversation thread, the frontend renders the unsanitized HTML, resulting in arbitrary JavaScript execution within the victim's session. This vulnerability poses a significant risk to university environments, as it facilitates account takeover, unauthorized access to sensitive course data, and large-scale compromise of student accounts. A fix has been committed in commit <code>2696b4b48cbef2e81512f52f84f7477adff78b27</code>.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker authenticates to a Sakai instance with at least student-level permissions.</li>
<li>Attacker selects a site where the Conversations tool is enabled.</li>
<li>Attacker crafts a malicious payload containing JavaScript, such as <code>&lt;img src=x onerror=alert(1)&gt;</code>.</li>
<li>Attacker sends an HTTP POST request to <code>/api/sites/{siteId}/topics</code> or <code>/api/sites/{siteId}/topics/{topicId}/posts</code> with the malicious payload in the <code>message</code> JSON field.</li>
<li>The Conversations service layer accepts the input without sanitization and commits the raw payload to the database.</li>
<li>A victim user navigates to the affected topic or post in the Sakai frontend.</li>
<li>The LitElement web component fetches the data and renders the payload via <code>unsafeHTML()</code>.</li>
<li>The browser executes the malicious script in the context of the victim's session, leading to potential data exfiltration or session hijacking.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows an attacker to execute arbitrary code within the browsers of all users viewing the compromised thread. In a university setting, this can lead to the mass exfiltration of gradebook data, course content, and unauthorized administrative actions if a privileged user views the content. The scope includes any deployment of Sakai 23.0 through 23.3.</p>
<h2 id="recommendation">Recommendation</h2>
<ol>
<li>Upgrade Sakai installations to a version containing the fix for CVE-2026-54049 once released.</li>
<li>Implement strict Content Security Policy (CSP) headers to prevent the execution of unauthorized inline scripts.</li>
<li>Deploy web application firewall (WAF) rules to detect and block common XSS payloads in JSON bodies directed at <code>/api/sites/*/topics</code> and <code>/api/sites/*/topics/*/posts</code> endpoints.</li>
<li>Review access control lists for the Conversations tool to ensure only trusted users have the ability to contribute to threads.</li>
</ol>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category></item></channel></rss>