☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 7.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N 🐛 CWE-284
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-49090

CVE-2025-49090 Vulnerability in Matrix
📅 PUBLISHED: 2025-10-02 00:00 UTC 🔄 UPDATED: 2026-09-23 20:22 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.44%
👁️
0.44% probability
11.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1548
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Patch available — upgrade to latest release
CVSS VECTOR BREAKDOWN 7.1
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: N Availability None
7.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-49090 is a logic flaw in the Matrix specification, affecting room versions prior to 12 and State Resolution (v2) versions prior to 2.1. This vulnerability allows a malicious or compromised homeserver to manipulate the state resolution algorithm to cause incorrect room state in federated rooms, potentially leading to unauthorized privilege escalation or denial of service. Any federated Matrix network using outdated room versions and state resolution logic is affected, with the primary impact being a loss of data integrity and trust in the event graph.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The vulnerability resides in the design of the Matrix state resolution algorithm, specifically in how it handles the "power events" and the "mainline" ordering when resolving state conflicts across a federation. The Matrix specification before version 1.16 (with room version < 12 and State Resolution v2 < 2.1) contains a flaw where a malicious state event can be crafted to influence the resolution outcome in a way that can be exploited.

The core weakness lies in the mechanism that determines the "sender's power level" at the time of a state event. In the flawed implementation, the algorithm does not correctly account for the causal history of power level events in all cases. Specifically, an attacker who controls a single server can send a malformed batch of state events that creates an ambiguous fork. By exploiting this flaw, they can cause the resolver to accept a state event that was sent by a user with a lower power level than required, effectively bypassing authorization checks. The attack takes advantage of the fact that the state resolution algorithm treats certain "unconflicted" state as authoritative without properly validating its provenance against the power level at the point of insertion in the event DAG.

The attack surface is the federation API (/_matrix/federation/v2/send_join/). The attack requires the ability to create events in a federated room. An attacker controlling a joined homeserver can attempt to alter the room's state (e.g., elevate server ACLs, change join rules, or add themselves as an admin) by crafting a sequence of events that tricks the resolution algorithm on other servers. The complexity is high due to the intricacies of the DAG, but the impact is severe, as it undermines the trust model of the entire federation.

Exploitation Scenarios

Even without a public PoC, an attacker can exploit this flaw to perform a "state reset" attack. The following is a step-by-step technical description of the attack chain:

  1. Reconnaissance and Target Identification:

    • The attacker identifies a target Matrix room that uses a vulnerable room version (e.g., room version 10 or 11) within a federation.
    • The attacker joins the room with a low-privilege account on their own homeserver (e.g., attacker@evil-server.com).
    • The attacker maps the room's "power levels" and identifies a target event (e.g., the m.room.power_levels event) they wish to change to escalate privileges.
  2. Trigger and Weaponization (The Crafted Event DAG):

    • The attacker creates a new fork in the room's DAG by sending a state event (e.g., m.room.power_levels) that changes the power required to send power events to a dangerously low level (e.g., 0).
    • Simultaneously, the attacker creates a separate, conflicting m.room.power_levels event that has no changes (or reverts to the original) but references a different prev_event.
    • To weaponize the flaw, the attacker creates a "poison" event that is a m.room.member event (e.g., promoting attacker to admin) that is sent after the "weakened" power level event in one branch but before it in another. The key is that the flawed resolution algorithm in v2.0 will fail to correctly apply the "mainline" ordering of power events. It can select the "weakened" power level as the authoritative one for the purposes of validating the m.room.member event, even if the event DAG suggests otherwise.
  3. Payload and Execution:

    • The attacker's server sends these events to other homeservers via the send_join or send_event federation endpoints.
    • The receiving homeservers run the State Resolution v2.0 algorithm to resolve the conflict.
    • Due to CVE-2025-49090, the algorithm incorrectly resolves the state, accepting the attacker's m.room.member event as valid, thereby granting the attacker admin-level privileges in the room state.
  4. Post-Exploitation Impact:

    • Privilege Escalation: With admin privileges, the attacker can now modify all room state, including removing other admins, banning users, or altering the room’s join rules.
    • Data Exfiltration: In a worst-case scenario, the attacker could alter the room topic or history visibility to gain access to messages they were not authorized to see.
    • Federation-wide Disruption: Since the malicious state is propagated, other servers will also accept the compromised state, leading to a split-brain scenario or a complete takeover of the room, which can be used for phishing or malware distribution.

Impact Assessment

CVSS Score: 7.1 (High)

The high score is driven by the integrity impact and the network-based attack vector. The vector string (pattern CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N) indicates:

  • Attack Vector (AV): Network (N) — Remotely exploitable over the Matrix federation.
  • Attack Complexity (AC): Low (L) — The attack conditions can be met without requiring special conditions beyond control of a server.
  • Privileges Required (PR): Low (L) — Requires only a low-privilege user account on a joined homeserver.
  • User Interaction (UI): None (N) — No victim interaction is required.
  • Confidentiality Impact (C): High (H) — Attack can lead to reading private room history.
  • Integrity Impact (I): High (H) — Attack can rewrite the room state, leading to admin takeover.

Business Impact:

  • Affected Systems: All Matrix homeservers (Synapse, Dendrite, Conduit, etc.) participating in federated rooms with room version < 12.
  • Blast Radius: High. A single exploited room can undermine trust in the entire federation, as a compromised room state can be used to launch phishing campaigns or exfiltrate sensitive data shared in that room. For enterprise users, proprietary code or strategic discussions could be stolen.

Detection Guidance

The following detection methods focus on identifying anomalous state resolution events and federation traffic patterns.

Sigma Rule

title: Suspicious Matrix State Reset Attempt
id: 31d4e5f7-8a1b-4c2d-9e3f-4a5b6c7d8e9f
status: experimental
description: Detects a burst of conflicting state events from a single server, indicating a potential state reset attack (CVE-2025-49090).
logsource:
  category: application
  product: matrix
  service: homeserver
detection:
  selection:
    event_type: "m.room.power_levels"
    origin_server:
      - "*evil-server*"
  condition: selection
  timeframe: 10s
falsepositives:
  - Legitimate race conditions in very active rooms.
level: high

YARA Rule

rule Matrix_State_Reset_Exploit {
    meta:
        author = "ValterSec Analyst"
        description = "Detects crafted state events attempting to exploit CVE-2025-49090"
        date = "2025-01-01"
    strings:
        $a = "m.room.power_levels" ascii wide
        $b = "m.room.member" ascii wide
        $c = "state_key" ascii wide
        $d = "prev_events" ascii wide
        $trigger1 = "content" ascii wide
    condition:
        all of them and #a > 3 and #b > 3
}

Suricata IDS Rule

alert http any any -> any any (msg:"Potential Matrix State Reset (CVE-2025-49090)"; content:"POST"; http_method; content:"/_matrix/federation/v1/send/"; http_uri; nocase; content:"m.room.power_levels"; http_client_body; nocase; content:"m.room.member"; http_client_body; nocase; within:1000; reference:cve,2025-49090; sid:9000001; rev:1;)

Elastic Detection

sequence by source.ip, host.id with maxspan=5s
  [ network where event.type == "connection" and network.protocol == "http" and http.request.method == "POST" and url.path like "*/_matrix/federation/v1/send/*" ]
  [ any where event.category == "web" and http.response.body.text contains "m.room.power_levels" ]
  [ any where event.category == "web" and http.response.body.text contains "m.room.member" ]

Splunk SPL Query

index=proxy sourcetype=matrix_api
| spath input=payload
| search "*/_matrix/federation/v1/send/*" AND "m.room.power_levels"
| stats count by source_ip, _time
| where count > 5
| table _time, source_ip, count

Wazuh OSSEC Rule

<group name="matrix,">
  <rule id="100401" level="12">
    <decodedate>%Y-%m-%dT%H:%M:%S</decodedate>
    <field name="url">\.*matrix\.federation/v1/send/\.*</field>
    <field name="data">m\.room\.power_levels</field>
    <description>Matrix Federation: Potential state reset attack (CVE-2025-49090) detected from $(srcip)</description>
    <group>matrix_integrity,</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch Confidence: 2/4 (CLAIMED) — We have a single source claiming a patch in the spec (v1.16), but it is not independently confirmed in all server implementations yet.

  1. Immediate Mitigations:

    • Upgrade Room Version: Room administrators should upgrade their rooms to Room Version 12 or later. This is the only definitive mitigation against the flaw.
    • Disable Federation (If Possible): For critical, highly sensitive rooms, consider temporarily disabling federation to prevent external attacks.
    • Monitor Federation Traffic: Implement the detection rules above to monitor for anomalous state resolution events.
  2. Patch/Upgrade Steps:

    • Homeserver Administrators: Upgrade your homeserver software (Synapse, Dendrite, etc.) to the latest version that implements the Matrix specification v1.16. This usually involves upgrading the room version of active rooms.
    • Room Administrators: Use the /upgraderoom command (in most clients) to upgrade critical rooms to Room Version 12. This is a required, manual step.
  3. Long-Term Hardening:

    • Enforce "Stable" Room Versions: Configure your homeserver to prohibit the creation of new rooms with outdated, unstable room versions.
    • Stay Updated: Continuously monitor the Matrix spec changelog and security advisories for any further adjustments to the state resolution algorithm.
    • Red Team Exercises: Regularly test your homeserver's resilience against federation attacks to identify any residual exposure.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2025-49090
  2. Matrix Security Disclosure: (Hypothetical) https://matrix.org/blog/2025/advisories/cve-2025-49090/ (Vendor advisory)
  3. Matrix Specification Change Log: https://spec.matrix.org/v1.16/changelog/ (Reference for spec update to v1.16)
  4. Researcher Analysis: (Hypothetical) https://blog.security-researcher.com/matrix-state-reset-advisory (Analysis of the logic flaw)

Threat Actor Campaigns / Exploitation Evidence: As of this report, there is no evidence of active exploitation in the wild or a public PoC. The CISA KEV catalog does not list this CVE. However, the attack class is well-understood, and it is only a matter of time before an exploit is commoditized.

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-49090/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.