<?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/"><channel><title>Protobufjs — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/protobufjs/</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>Tue, 12 May 2026 15:07:49 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/protobufjs/feed.xml" rel="self" type="application/rss+xml"/><item><title>protobuf.js Code Injection via Crafted Bytes Field Defaults (CVE-2026-44293)</title><link>https://feed.craftedsignal.io/briefs/2026-05-protobufjs-code-injection/</link><pubDate>Tue, 12 May 2026 15:07:49 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-protobufjs-code-injection/</guid><description>protobuf.js is vulnerable to code injection (CVE-2026-44293); by crafting a protobuf descriptor with a non-string default value for a `bytes` field, an attacker can inject arbitrary Javascript code into the generated `toObject` conversion function if default values are enabled, requiring the application to load an attacker-controlled schema and convert a message of the affected type with defaults enabled.</description><content:encoded><![CDATA[<p>protobuf.js versions 7.5.5 and earlier, and 8.0.0 through 8.0.1 are vulnerable to code injection (CVE-2026-44293). The vulnerability stems from the way protobuf.js generates JavaScript code for <code>toObject</code> conversion. A malicious actor can craft a protobuf descriptor that contains a <code>bytes</code> field with a default value that is not a string. When the <code>toObject</code> function is generated, this non-string default value is included as an unsafe expression, leading to the injection of attacker-controlled code into the generated function if default values are enabled. This poses a risk when applications load untrusted protobuf schemas or descriptors, allowing for arbitrary JavaScript execution within the application&rsquo;s context.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker crafts a malicious protobuf descriptor. This descriptor includes a <code>bytes</code> field that has a non-string default value, such as JavaScript code.</li>
<li>The attacker delivers the malicious protobuf descriptor to a vulnerable application. This could be achieved by hosting the descriptor on a server or sending it directly to the application.</li>
<li>The application loads and parses the attacker-controlled protobuf descriptor, generating code using the protobuf.js library.</li>
<li>During code generation, protobuf.js incorporates the attacker-controlled, non-string default value into the <code>toObject</code> conversion function.</li>
<li>The application calls the <code>toObject</code> function with default values enabled for the affected type.</li>
<li>When the <code>toObject</code> function is executed, the injected JavaScript code from the malicious default value is executed within the application&rsquo;s process.</li>
<li>The attacker achieves arbitrary JavaScript execution within the context of the application.</li>
<li>The attacker may then leverage this code execution to perform unauthorized actions, such as accessing sensitive data or compromising the system.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability (CVE-2026-44293) allows an attacker to execute arbitrary JavaScript code within the context of a vulnerable application using protobuf.js. This could lead to sensitive data exposure, unauthorized access to system resources, or complete system compromise. The impact is especially severe if the application processes untrusted protobuf schemas.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to protobuf.js version 8.0.2 or later to remediate the vulnerability.</li>
<li>Avoid loading protobuf schemas or JSON descriptors from untrusted sources as described in the overview.</li>
<li>Validate or restrict field options before loading schemas from untrusted sources, and run schema processing in an isolated environment as described in the workaround section.</li>
<li>Deploy the Sigma rule &ldquo;Detect CVE-2026-44293 Exploitation — Protobuf.js Code Injection&rdquo; to identify potential exploitation attempts by monitoring for unexpected code execution during protobuf processing.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>code-injection</category><category>protobufjs</category><category>CVE-2026-44293</category><category>javascript</category></item><item><title>protobuf.js Denial-of-Service Vulnerability via Unbounded Recursion (CVE-2026-44289)</title><link>https://feed.craftedsignal.io/briefs/2026-05-protobufjs-dos/</link><pubDate>Tue, 12 May 2026 15:05:31 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-protobufjs-dos/</guid><description>protobuf.js is vulnerable to a denial-of-service (DoS) attack (CVE-2026-44289) due to unbounded recursion while decoding nested protobuf data, potentially leading to stack exhaustion and process crashes when processing crafted protobuf binary payloads.</description><content:encoded><![CDATA[<p>protobuf.js versions 7.5.5 and earlier, and 8.0.0 through 8.0.1, are susceptible to a denial-of-service vulnerability (CVE-2026-44289) due to unbounded recursion during the decoding of nested protobuf data. This vulnerability is triggered when the decoder encounters deeply nested structures, either through unknown group fields or nested message fields. An attacker can exploit this by crafting a malicious protobuf binary payload that, when processed by an application using a vulnerable version of protobuf.js, causes the JavaScript call stack to be exhausted. This stack exhaustion leads to a process crash or decoding failure due to a stack overflow. This vulnerability poses a risk to applications that decode untrusted protobuf binary input, potentially disrupting service availability and requiring process restarts.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker crafts a malicious protobuf binary payload. This payload contains excessively nested protobuf structures.</li>
<li>The application receives the crafted protobuf binary payload as input. This input may originate from a network request, file upload, or other data source.</li>
<li>The application uses a vulnerable version of protobuf.js (&lt;= 7.5.5 or &gt;= 8.0.0 and &lt;= 8.0.1) to decode the protobuf binary data.</li>
<li>During decoding, the protobuf.js library recursively processes the nested structures within the payload.</li>
<li>Due to the excessive nesting, the JavaScript call stack grows without bound. The recursion occurs when either skipping unknown group fields or decoding nested message fields.</li>
<li>The JavaScript call stack reaches its limit, resulting in a stack overflow error.</li>
<li>The application process terminates abruptly due to the unhandled exception.</li>
<li>The application becomes unavailable, leading to a denial-of-service condition.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability (CVE-2026-44289) leads to a denial-of-service condition, where the application processing the crafted protobuf data crashes or becomes unresponsive. The impact depends on the role of the affected application; a crash in a critical service can disrupt operations, while a crash in a less critical component may only cause temporary inconvenience. The number of affected applications depends on the adoption of vulnerable protobuf.js versions and the prevalence of untrusted protobuf data processing. The attack can cause loss of service availability and potential data integrity issues if decoding is interrupted mid-process.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade protobuf.js to the latest version to patch CVE-2026-44289.</li>
<li>If upgrading is not immediately feasible, implement input validation to reject excessively nested protobuf messages at the application layer.</li>
<li>Consider isolating protobuf decoding within a sandboxed process that can be safely restarted to mitigate the impact of crashes.</li>
<li>Deploy the Sigma rule &ldquo;Detect protobuf.js Excessive Recursion Attempt&rdquo; to identify potential exploitation attempts by monitoring process resource consumption.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>denial of service</category><category>protobufjs</category><category>CVE-2026-44289</category></item><item><title>protobuf.js CLI pbts Command Injection Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-05-protobufjs-command-injection/</link><pubDate>Tue, 12 May 2026 15:00:54 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-protobufjs-command-injection/</guid><description>The protobuf.js CLI tool `pbts` is vulnerable to OS command injection via crafted filenames or paths with shell metacharacters, potentially leading to arbitrary command execution with the privileges of the `pbts` process when invoked on attacker-influenced file paths; CVE-2026-42290.</description><content:encoded><![CDATA[<p>The <code>pbts</code> command-line tool in protobuf.js is susceptible to OS command injection due to its construction of shell command strings from input file paths when invoking JSDoc. This occurs because file paths containing shell metacharacters are interpreted by the shell rather than being treated as plain arguments by JSDoc. This vulnerability exists in protobufjs-cli versions 1.2.0 and earlier, as well as versions 2.0.0 through 2.0.1. Successful exploitation allows an attacker to execute arbitrary shell commands within the context of the <code>pbts</code> process. It is important to note that this issue specifically affects the CLI tooling path; the protobuf.js runtime APIs for encoding, decoding, parsing, and loading protobuf messages remain unaffected. Defenders should focus on monitoring and restricting the usage of <code>pbts</code> with untrusted input.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker gains control over filenames or paths that will be processed by <code>pbts</code>.</li>
<li>The attacker crafts a malicious filename or path containing shell metacharacters (e.g., <code>;</code>, <code>|</code>, <code>&amp;</code>, <code>$</code>).</li>
<li>A user or application invokes the vulnerable <code>pbts</code> command, passing the attacker-controlled path as an argument.</li>
<li><code>pbts</code> constructs a shell command string that includes the malicious path.</li>
<li><code>pbts</code> executes the generated command string using <code>child_process.exec</code>.</li>
<li>The shell interprets the metacharacters in the malicious path, leading to the execution of arbitrary commands.</li>
<li>The attacker achieves arbitrary command execution with the privileges of the <code>pbts</code> process.</li>
<li>The attacker can then perform malicious activities such as data exfiltration, system compromise, or denial of service.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability (CVE-2026-42290) enables an attacker to execute arbitrary shell commands with the privileges of the process running <code>pbts</code>. This could lead to complete system compromise, data theft, or other malicious activities. The vulnerable component is the command line tool. The number of potential victims depends on the prevalence of vulnerable protobufjs-cli versions and the degree to which <code>pbts</code> is used with untrusted input.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to a patched version of <code>protobufjs-cli</code> that addresses CVE-2026-42290.</li>
<li>If upgrading is not immediately feasible, sanitize or rename input files before invoking <code>pbts</code>, as described in the advisory.</li>
<li>Implement process monitoring to detect suspicious command execution originating from <code>pbts</code> processes, using the process_creation rules provided.</li>
<li>Run the <code>pbts</code> CLI in an isolated environment with minimal privileges to limit the impact of potential command injection attacks, as described in the advisory.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>command-injection</category><category>protobufjs</category><category>cli</category><category>execution</category></item></channel></rss>