<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>rootzero: Research, CVE and Blog</title><description>Technical articles, research notes and CVE write-ups from the rootzero team: offensive security, detection, method.</description><link>https://rootzero.eu/</link><language>en-GB</language><item><title>AI in red teaming: scope, working memory and autonomy levels</title><link>https://rootzero.eu/en/research/ai-red-team-rules-of-work/</link><guid isPermaLink="true">https://rootzero.eu/en/research/ai-red-team-rules-of-work/</guid><description>Let AI understand the target, keep facts separate from hypotheses, and grant autonomy according to the real cost of a wrong action.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Blog</category><category>AI</category><category>Red Team</category><category>Methodology</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>MCP: design a precise, bounded and authorised tool server</title><link>https://rootzero.eu/en/research/build-a-useful-mcp-server-for-a-tool/</link><guid isPermaLink="true">https://rootzero.eu/en/research/build-a-useful-mcp-server-for-a-tool/</guid><description>An MCP server earns its keep when tools have precise actions, bounded outputs and real authorization. A practical method using a fictional read-only catalogue.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Blog</category><category>AI</category><category>MCP</category><category>Methodology</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>Command-line detection: equivalent effects, syntax variants and telemetry</title><link>https://rootzero.eu/en/research/cli-obfuscation-effects-signatures/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cli-obfuscation-effects-signatures/</guid><description>Two command lines can produce the same output but leave different text in telemetry. A small lab method for testing CLI rules without claiming an EDR bypass.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Blog</category><category>Red Team</category><category>Detection</category><category>Linux</category><category>CLI</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>init=/bin/bash: what a Linux login actually protects</title><link>https://rootzero.eu/en/research/init-bin-bash-root-linux-boot/</link><guid isPermaLink="true">https://rootzero.eu/en/research/init-bin-bash-root-linux-boot/</guid><description>A boot parameter can launch Bash as PID 1 and give root, under specific conditions. An owned-VM exercise and the limits of GRUB, encryption, and Secure Boot.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Blog</category><category>Linux</category><category>Physical access</category><category>Hardening</category><category>Boot</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>VPN kill switches: fail-closed design and IP leak verification</title><link>https://rootzero.eu/en/research/vpn-kill-switch-prove-no-ip-leak/</link><guid isPermaLink="true">https://rootzero.eu/en/research/vpn-kill-switch-prove-no-ip-leak/</guid><description>A VPN route does not guarantee that your source IP stays hidden. Define a fail-closed policy and test DNS, IPv6 and reconnects against your own endpoint.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Blog</category><category>Red Team</category><category>VPN</category><category>Network</category><category>OpSec</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>WPSplinter in France: scope of the Paris radio survey</title><link>https://rootzero.eu/en/research/wpsplinter-france-paris-survey/</link><guid isPermaLink="true">https://rootzero.eu/en/research/wpsplinter-france-paris-survey/</guid><description>Quentin Kaiser proved WPSplinter on Belgian gateways. His Paris radio survey flags French models, without measuring national exposure or proving RCE on them.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Blog</category><category>Wi-Fi</category><category>Vulnerabilities</category><category>France</category><category>Research</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>Attack surface mapping: CT logs, forgotten assets and typosquats</title><link>https://rootzero.eu/en/research/forgotten-attack-surface/</link><guid isPermaLink="true">https://rootzero.eu/en/research/forgotten-attack-surface/</guid><description>Certificate Transparency, forgotten staging servers, open cloud storage, typosquats, SPF/DKIM/DMARC: what an attacker sees of you before you do.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>Blog</category><category>Exposure</category><category>Network</category><category>Web</category><category>Governance</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>RZ-2026-2973 · Autonomous offensive agents: scope guardrails</title><link>https://rootzero.eu/en/research/offensive-agents-scope-guardrails/</link><guid isPermaLink="true">https://rootzero.eu/en/research/offensive-agents-scope-guardrails/</guid><description>An autonomous testing agent that sends requests to real systems must stay within the authorised scope, including when the model driving it makes a mistake or is manipulated by the target’s content. This note describes an architecture in which guardrails are enforced outside the model, on every request: declarative scope, address resolution and pinning, redirect revalidation, rate limiting, graded action classes, lease-based kill switch, hash-chained audit log and the human role. It lists the known pitfalls and the limits of the approach.</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate><category>Research</category><category>Methodology</category><category>Pentest</category><category>AI</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>A CVSS score is not a risk</title><link>https://rootzero.eu/en/research/cvss-is-not-risk/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cvss-is-not-risk/</guid><description>CVSS measures technical severity and ignores your context. CVSS 3.1 and 4.0, EPSS, the CISA KEV catalogue: how to prioritise with data.</description><pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate><category>Blog</category><category>Vulnerabilities</category><category>Governance</category><category>Detection</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>JWT: five implementation flaws and their fixes</title><link>https://rootzero.eu/en/research/jwt-five-mistakes/</link><guid isPermaLink="true">https://rootzero.eu/en/research/jwt-five-mistakes/</guid><description>alg none, algorithm confusion, weak HMAC secrets, kid injection, tokens that never expire: five classic JWT mistakes and how to fix them.</description><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate><category>Blog</category><category>Web</category><category>API</category><category>Authentication</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-33625: code execution in LMDeploy through eval() of a model’s quant_dtype</title><link>https://rootzero.eu/en/research/cve/cve-2026-33625-lmdeploy-eval-rce/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-33625-lmdeploy-eval-rce/</guid><description>LMDeploy built a Python expression from the quant_dtype field of a model’s quantization_config and passed it to eval() while loading the model configuration. Anyone able to publish a model that an operator later loads, on Hugging Face Hub or any other repository, could run arbitrary code on the inference host with the privileges of the LMDeploy process. Fixed in 0.12.3.</description><pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-33625</category><category>Code injection</category><category>Code execution</category><category>AI and machine learning</category><category>PyPI</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-85575: stored XSS in ShopEngine through the product title heading tag</title><link>https://rootzero.eu/en/research/cve/cve-2026-85575-shopengine-stored-xss/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-85575-shopengine-stored-xss/</guid><description>The Product Title widget printed shopengine_product_title_header_size without an allowlist. Our ShopEngine 4.8.9 test proves storage by an Author and execution in a visitor browser; Wordfence describes Contributor+ scope. Fixed in ShopEngine 4.9.6.</description><pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-85575</category><category>XSS</category><category>WordPress</category><category>PHP</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>RZ-2026-8084 · Vulnerability validation cycle: from hypothesis to reproducible evidence</title><link>https://rootzero.eu/en/research/proof-before-alert/</link><guid isPermaLink="true">https://rootzero.eu/en/research/proof-before-alert/</guid><description>Penetration test reports often mix demonstrated findings with inferences: versions assumed to be vulnerable, recognised signatures, ambiguous responses. This note defines what a demonstrated finding is and proposes a five-step chain (hypothesis, attempt, observed response, independent verification, replayable re-test), illustrated by the detection of a server-side template injection. It lists the main classes of false positives and the limits of the approach.</description><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate><category>Research</category><category>Methodology</category><category>Pentest</category><category>Vulnerabilities</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-68896: local privilege escalation in the Windows Search component</title><link>https://rootzero.eu/en/research/cve/cve-2026-68896-windows-search-eop/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-68896-windows-search-eop/</guid><description>We followed a per-user Search catalogue from a user-writable profile into SYSTEM cleanup at logon. A non-admin test deleted a protected file that the same user could not delete; a fresh-install control reproduced that primitive. The later code-execution conversion had extra Windows Installer and lab-orchestration conditions. Microsoft fixed CVE-2026-68896 in September 2026.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-68896</category><category>Path traversal</category><category>Privilege escalation</category><category>Windows</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-81963: local privilege escalation in the Windows Update Stack through link following</title><link>https://rootzero.eu/en/research/cve/cve-2026-81963-windows-update-stack-eop/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-81963-windows-update-stack-eop/</guid><description>We revisited the narrow fix for CVE-2020-0728, discarded a promising but unproven CBS path, and found a caller-controlled package sandbox that TrustedInstaller reused without impersonation. Separate lab controls established a privileged write and then SYSTEM execution. Microsoft fixed CVE-2026-81963 in September 2026; the original route stopped on build 26200.9445.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-81963</category><category>Link following</category><category>Privilege escalation</category><category>Windows</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>Detect and block reverse shells with Sysmon and auditd</title><link>https://rootzero.eu/en/research/reverse-shells-detect-and-block/</link><guid isPermaLink="true">https://rootzero.eu/en/research/reverse-shells-detect-and-block/</guid><description>Why a reverse shell passes permissive egress filtering, and how to spot one: egress filtering, process lineage, Sysmon, auditd and EDR.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate><category>Blog</category><category>Detection</category><category>Network</category><category>Systems</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>Six stored XSS in WordPress plugins: when a tag name becomes an attack vector</title><link>https://rootzero.eu/en/research/cve/wordpress-elementor-addons-stored-xss-tag-names/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/wordpress-elementor-addons-stored-xss-tag-names/</guid><description>Six WordPress plugins let a user with the Contributor role choose the HTML tag of a heading or wrapper, then printed that value with esc_attr() or with no escaping at all. A value such as img src=x onerror=alert(1) contains no angle bracket, passes kses untouched and becomes a working element with an event handler once the plugin writes it after a less-than sign. The result is stored XSS in pages that editors, administrators and visitors open. Each plugin has a fixed release.</description><pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-6504</category><category>CVE-2026-8677</category><category>CVE-2026-8613</category><category>CVE-2026-8607</category><category>CVE-2026-11390</category><category>CVE-2026-18988</category><category>XSS</category><category>Variant analysis</category><category>WordPress</category><category>PHP</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-84191: stored XSS in LibreNMS through SNMP-sourced VRF names and descriptions</title><link>https://rootzero.eu/en/research/cve/cve-2026-84191-librenms-stored-xss-snmp/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-84191-librenms-stored-xss-snmp/</guid><description>LibreNMS stored the VRF name, description and route distinguisher returned by monitored devices over SNMP, then echoed them into its routing pages without HTML escaping. A device under the attacker’s control, or anyone able to tamper with SNMPv1/v2c traffic, could plant JavaScript that runs in the browser of every user who opens those pages. Main rendering sinks fixed in 26.5.0; a separate onmouseover sink was changed in 26.8.0.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-84191</category><category>XSS</category><category>Monitoring and CTI</category><category>PHP</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-34398 and CVE-2026-34399: code execution through eval() in the FreeCAD BIM workbench</title><link>https://rootzero.eu/en/research/cve/cve-2026-34398-34399-freecad-bim-eval-rce/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-34398-34399-freecad-bim-eval-rce/</guid><description>The BIM workbench of FreeCAD passed values read from files to Python eval(): four working plane fields from the metadata of a .FCStd template in the Project Manager, and the Scale field of an SVG template when creating a TechDraw page. A user who loads a crafted template runs the attacker’s Python code with their own privileges. Both flaws are fixed in FreeCAD 1.1.1.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-34398</category><category>CVE-2026-34399</category><category>Code injection</category><category>Code execution</category><category>Desktop software</category><category>C++</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-77262: arbitrary file read in MCP Atlassian through confluence_upload_attachment</title><link>https://rootzero.eu/en/research/cve/cve-2026-77262-mcp-atlassian-arbitrary-file-read/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-77262-mcp-atlassian-arbitrary-file-read/</guid><description>The confluence_upload_attachment tool of MCP Atlassian passed its file_path argument to open() with no path check, then uploaded the bytes to Confluence. A caller with access to that tool could upload any file readable by the server process to a writable Confluence destination. An HTTP client needs an HTTP deployment; an agent route additionally depends on the agent following hostile content, which the file-read proof did not test. The earlier fix for GHSA-xjgw-4wvw-rgm4 guarded the download direction only. Fixed in 0.22.0.</description><pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-77262</category><category>File read</category><category>Incomplete fix</category><category>MCP servers</category><category>AI and machine learning</category><category>PyPI</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-34049: command injection in Coolify MongoDB backups, an incomplete fix of CVE-2025-66209</title><link>https://rootzero.eu/en/research/cve/cve-2026-34049-coolify-backup-command-injection/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-34049-coolify-backup-command-injection/</guid><description>Coolify’s fix for CVE-2025-66209 validated and escaped the database names of a backup configuration, but the MongoDB collection names written in the same field still went into the mongodump command unescaped. A team member able to configure backups, which the default policy allows for everyone, could run commands as root on the managed server. The vendor scores it 3.3; the technical impact is close to the original 9.9 flaw. Fixed in 4.0.0-beta.471.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-34049</category><category>Command injection</category><category>Incomplete fix</category><category>DevOps and PaaS</category><category>PHP</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-35211: Painless script injection in OpenCTI through the GraphQL script filter operator</title><link>https://rootzero.eu/en/research/cve/cve-2026-35211-opencti-painless-script-injection/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-35211-opencti-painless-script-injection/</guid><description>The GraphQL API of OpenCTI exposed a script value in its FilterOperator enum, and the query builder copied the filter value into an Elasticsearch script query without any check. Any authenticated user with the KNOWLEDGE capability could make the search cluster execute arbitrary Painless code on every candidate document, enough to exhaust its CPU and degrade the platform for all users. Fixed in 7.260401.0, where the operator is refused unless an explicit setting enables it.</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-35211</category><category>Code injection</category><category>Query injection (Cypher, KQL, Painless)</category><category>Monitoring and CTI</category><category>npm</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>GHSA-wg9g-w2j2-8pgr: code execution in MONAI through pickled NumPy files read by NumpyReader</title><link>https://rootzero.eu/en/research/cve/ghsa-wg9g-w2j2-8pgr-monai-numpy-pickle-rce/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/ghsa-wg9g-w2j2-8pgr-monai-numpy-pickle-rce/</guid><description>The NumpyReader class of MONAI called np.load() with allow_pickle=True hard-coded, and LoadImage selects that reader for every .npy and .npz file. A crafted file placed in a dataset therefore executed arbitrary code, through pickle’s __reduce__ protocol, in the process of whoever loaded it for training or inference. Users could not turn the option off. Fixed in 1.6.0, where pickle loading is disabled by default.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate><category>CVE</category><category>GHSA-wg9g-w2j2-8pgr</category><category>Deserialisation</category><category>Code execution</category><category>AI and machine learning</category><category>PyPI</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-48017: remote code execution in DbGate through the loadReader endpoint</title><link>https://rootzero.eu/en/research/cve/cve-2026-48017-dbgate-rce/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-48017-dbgate-rce/</guid><description>The POST /runners/load-reader endpoint of DbGate copied a functionName parameter into JavaScript source that the server then ran in a forked process. Any logged-in user, with no particular permission, could close the expected call, append code and reach the operating system through process.binding(&quot;spawn_sync&quot;), which the require = null sandbox leaves available. Fixed in 7.1.9.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-48017</category><category>Code execution</category><category>Code injection</category><category>Data platforms</category><category>npm</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-45662: command injection in Dokploy through the registry URL on docker logout</title><link>https://rootzero.eu/en/research/cve/cve-2026-45662-dokploy-command-injection/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-45662-dokploy-command-injection/</guid><description>When a registry was deleted, self-hosted Dokploy ran docker logout with the stored registry URL concatenated into a shell command, although the same file escaped that value for docker login. A user allowed to create and delete registries could store a URL containing shell metacharacters and run commands on the Dokploy host, which drives Docker and holds the platform’s secrets. Fixed in 0.29.3.</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-45662</category><category>Command injection</category><category>Code execution</category><category>DevOps and PaaS</category><category>npm</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-40864: XSRF bypass in JupyterHub through Sec-Fetch-Mode: no-cors requests</title><link>https://rootzero.eu/en/research/cve/cve-2026-40864-jupyterhub-xsrf-bypass/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-40864-jupyterhub-xsrf-bypass/</guid><description>From 4.1.0, JupyterHub used the Sec-Fetch-Mode header to decide whether a cookie-authenticated request needed an XSRF token, and exempted every no-cors request whatever its method or origin. A page on another origin could send credentialed form-encoded POSTs to /hub/spawn or /hub/accept-share, starting the victim’s server or making the victim accept a share of the attacker’s server. Fixed in 5.4.5.</description><pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-40864</category><category>CSRF</category><category>Data platforms</category><category>PyPI</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-41490: SQL injection in Dagster database I/O managers through dynamic partition keys</title><link>https://rootzero.eu/en/research/cve/cve-2026-41490-dagster-sql-injection/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-41490-dagster-sql-injection/</guid><description>Five Dagster database I/O managers built the WHERE clause of their SELECT and DELETE statements by pasting partition keys between single quotes. With a DynamicPartitionsDefinition, those keys are created at runtime through the GraphQL API, so anyone allowed to add a partition and launch a run could execute SQL against the warehouse with the I/O manager’s credentials. Fixed in dagster 1.13.1 and integrations 0.29.1.</description><pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-41490</category><category>SQL injection</category><category>Variant analysis</category><category>Data platforms</category><category>PyPI</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-33715: unauthenticated SSRF and open mail relay in Chamilo LMS through install.ajax.php</title><link>https://rootzero.eu/en/research/cve/cve-2026-33715-chamilo-ssrf-open-relay/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-33715-chamilo-ssrf-open-relay/</guid><description>The installation wizard endpoint public/main/inc/ajax/install.ajax.php stayed reachable on installed Chamilo LMS 2.0 instances, with no session and no installation check. Its test_mailer action handed a DSN taken from the request to Symfony Mailer, so an unauthenticated attacker could make the server connect to any SMTP host and port and send a message to any address. Fixed in 2.0-RC.3.</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-33715</category><category>SSRF</category><category>Missing authentication</category><category>Email</category><category>E-learning</category><category>PHP</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-34160: unauthenticated SSRF in the Chamilo LMS PENS plugin through package and callback URLs</title><link>https://rootzero.eu/en/research/cve/cve-2026-34160-chamilo-pens-ssrf/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-34160-chamilo-pens-ssrf/</guid><description>The PENS plugin endpoint public/plugin/Pens/pens.php of Chamilo LMS 2.0 required no session and took its package-url, receipt and alerts URLs from the request. The URL checks only looked at the scheme and the presence of a host, so an unauthenticated attacker could make the server send GET and POST requests to internal hosts and to the cloud metadata service. Fixed in 2.0-RC.3.</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-34160</category><category>SSRF</category><category>Missing authentication</category><category>Variant analysis</category><category>E-learning</category><category>PHP</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>pfSense-SA-26_03: stored XSS in the ARP table through a DHCP-supplied hostname</title><link>https://rootzero.eu/en/research/cve/pfsense-sa-26-03-diag-arp-stored-xss/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/pfsense-sa-26-03-diag-arp-stored-xss/</guid><description>With ISC DHCP enabled, pfSense printed a client-supplied lease hostname into diag_arp.php without HTML encoding. A DHCP client on that local network could plant JavaScript that ran when an administrator opened the ARP table. Netgate lists Plus 26.03.1 and 26.07, CE 2.9.0 and recommended System Patches as fixed paths; Kea was not affected.</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate><category>CVE</category><category>pfSense-SA-26_03.webgui</category><category>XSS</category><category>Monitoring and CTI</category><category>PHP</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-34940: OS command injection in KubeAI through the Ollama startup probe</title><link>https://rootzero.eu/en/research/cve/cve-2026-34940-kubeai-command-injection/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-34940-kubeai-command-injection/</guid><description>KubeAI built the startup probe of Ollama model pods by formatting the Model URL into a bash -c script. Anyone allowed to create or update Model resources, a right often delegated to tenants who are not cluster administrators, could append shell commands to the URL and have the kubelet run them inside the model pod, next to its secrets and service account token. Fixed in 0.23.2.</description><pubDate>Tue, 31 Mar 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-34940</category><category>Command injection</category><category>Code execution</category><category>DevOps and PaaS</category><category>AI and machine learning</category><category>Go</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-34975: email header injection in Plunk through raw MIME construction in SESService</title><link>https://rootzero.eu/en/research/cve/cve-2026-34975-plunk-email-header-injection/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-34975-plunk-email-header-injection/</guid><description>Plunk built the raw MIME message it hands to Amazon SES by interpolating from.name, subject, custom header keys and values, and attachment filenames into a template string. None of these fields rejected line breaks, so any holder of a project API key could add header fields of their choice or reshape MIME parts in the emails sent through POST /v1/send. Fixed in 0.8.0 by schema validation.</description><pubDate>Tue, 31 Mar 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-34975</category><category>CRLF injection</category><category>Email</category><category>npm</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-33980: KQL injection in Azure Data Explorer MCP Server through table_name</title><link>https://rootzero.eu/en/research/cve/cve-2026-33980-adx-mcp-server-kql-injection/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-33980-adx-mcp-server-kql-injection/</guid><description>The get_table_schema, sample_table_data and get_table_details tools of adx-mcp-server built Kusto queries by inserting the table_name argument into f-strings. Any MCP client, including an agent steered by prompt injection, could turn a call to these metadata tools into an arbitrary KQL query or management command, outside the approval policy applied to execute_query. Fixed in commit 0abe0ee; no release on PyPI contains it yet.</description><pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-33980</category><category>Query injection (Cypher, KQL, Painless)</category><category>MCP servers</category><category>AI and machine learning</category><category>Data platforms</category><category>PyPI</category><author>contact@rootzero.eu (rootzero)</author></item><item><title>CVE-2026-32247: Cypher injection in Graphiti through search filter node labels</title><link>https://rootzero.eu/en/research/cve/cve-2026-32247-graphiti-cypher-injection/</link><guid isPermaLink="true">https://rootzero.eu/en/research/cve/cve-2026-32247-graphiti-cypher-injection/</guid><description>Before 0.28.2, graphiti-core joined the node_labels of a SearchFilters object with | and concatenated the result into the WHERE clause of its Neo4j, FalkorDB and Neptune queries. A caller who could choose those labels could alter the query and bypass its group_id filter. Read access across groups follows from the query construction; write clauses also depend on the backend route and database permissions. A prompt-injection route through an agent is possible but was not demonstrated by the query proof. Fixed in 0.28.2.</description><pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate><category>CVE</category><category>CVE-2026-32247</category><category>Query injection (Cypher, KQL, Painless)</category><category>MCP servers</category><category>AI and machine learning</category><category>PyPI</category><author>contact@rootzero.eu (rootzero)</author></item></channel></rss>