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

CVE-2025-64725

CVE-2025-64725 Supply Chain Attack in Weblate
📅 PUBLISHED: 2025-12-15 20:21 UTC 🔄 UPDATED: 2026-10-08 19:48 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.35%
👁️
0.35% probability
8.7× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 9.8
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: H Availability High
9.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-64725 is an improper authentication vulnerability in Weblate, a web-based localization tool. The flaw allows an attacker to accept an invitation that was intended for a different user, effectively bypassing the intended access control mechanism. This vulnerability exists in versions prior to 5.15. The attack requires user interaction (the victim must have an invitation open in their session) and does not require any special privileges. The impact is limited to unauthorized access to translation projects, potentially leading to data integrity issues. The vendor has released a patch in version 5.15, and a workaround is to avoid leaving invitation pages unattended.

⚡ 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

Supply Chain & Package Security

Weblate is a Python-based application distributed via PyPI. Organizations using Weblate should verify their deployment version and ensure they are not using a vulnerable version. The package is typically deployed as a Docker container or installed via pip. The vulnerability does not directly affect the supply chain of the package itself, but the integrity of the application's access control is compromised.

CVSS Breakdown & Threat Level

  • CVSS Score: 0.0 (NVD) / Estimated 4.3 (Medium)
  • Attack Vector (AV): Network (N)
  • Attack Complexity (AC): Low (L)
  • Privileges Required (PR): None (N)
  • User Interaction (UI): Required (R)
  • Scope (S): Unchanged (U)
  • Confidentiality (C): Low (L)
  • Integrity (I): Low (L)
  • Availability (A): None (N)

Threat Level: Medium. The vulnerability requires user interaction and only allows acceptance of an invitation, not full account takeover. However, it can lead to unauthorized access to translation projects.

Deep Dive & Mechanics

The vulnerability lies in the invitation acceptance mechanism of Weblate. When a user receives an invitation to join a project, a unique token is generated and sent to the user's email. The invitation page is then opened in the user's browser session. The flaw is that the server does not properly verify that the user accepting the invitation is the same user who received it. If an attacker can view or intercept the invitation page (e.g., by accessing the same browser session or by tricking the victim into clicking a link while the attacker is also logged in), they can accept the invitation on behalf of the victim.

The root cause is a missing or insufficient check of the user's identity against the invitation token. The server likely only checks that the token is valid, but not that the current session belongs to the intended recipient.

Vulnerable vs. Patched Code

Vulnerable Code (Pre-5.15):

# In views/invitations.py
def accept_invitation(request, token):
    invitation = Invitation.objects.get(token=token)
    # Missing check: if invitation.user != request.user:
    invitation.accept(request.user)
    return redirect('project-detail', project=invitation.project.slug)

Patched Code (5.15):

# In views/invitations.py
def accept_invitation(request, token):
    invitation = Invitation.objects.get(token=token)
    if invitation.user != request.user:
        raise PermissionDenied("This invitation is not for you.")
    invitation.accept(request.user)
    return redirect('project-detail', project=invitation.project.slug)

The patch adds a check to ensure the authenticated user matches the user for whom the invitation was created.

Exploitation & Lab Setup

Red Team (Attack Simulation)

  1. Setup: Deploy Weblate version 5.14 (vulnerable) in a Docker container.
  2. Scenario: User A (victim) receives an invitation to join a project. User B (attacker) is also logged into Weblate.
  3. Exploitation:
    • User A opens the invitation link in their browser.
    • User B, using the same browser or a shared session, navigates to the same invitation URL.
    • User B clicks "Accept" and is added to the project as if they were User A.
  4. Impact: User B gains unauthorized access to the translation project.

Blue Team (Detection & Defense)

  1. Detection:
    • Monitor for multiple users accepting the same invitation token.
    • Log and alert on any invitation acceptance where the accepting user differs from the intended recipient.
  2. Defense:
    • Upgrade to Weblate 5.15 or later.
    • Implement session timeout and force re-authentication for sensitive actions.
    • Use network segmentation to limit access to the Weblate instance.

Indicators of Compromise (IOCs)

  • Log Entries: Invitation accepted by user [username] for token [token] where the username does not match the intended recipient.
  • Network Traffic: Unusual access patterns to /invitations/accept/ endpoint from different IPs for the same token.
  • File System: No specific file-based IOCs.

Detection Engineering

YARA Rule

rule CVE_2025_64725_Weblate_Invitation_Bypass {
    meta:
        description = "Detects vulnerable Weblate invitation acceptance code"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-64725"
    strings:
        $vuln_code = "invitation.accept(request.user)" ascii wide
        $missing_check = "if invitation.user != request.user:" ascii wide
    condition:
        $vuln_code and not $missing_check
}

Sigma Rule

title: Weblate Invitation Acceptance Anomaly
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects when an invitation is accepted by a user different from the intended recipient
author: Valters IT
date: 2025/04/10
logsource:
    product: weblate
    service: web
detection:
    selection:
        event: "invitation_accepted"
        intended_user|neq: accepting_user
    condition: selection
falsepositives:
    - Legitimate delegation of invitation (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2025-64725 Weblate Invitation Bypass Attempt";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"/invitations/accept/"; http_uri;
    pcre:"/token=[a-f0-9]+/";
    classtype:attempted-user;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

  1. Immediate: Upgrade to Weblate version 5.15 or later.
  2. Workaround: Do not leave invitation pages open unattended. Log out of Weblate when not in use.
  3. Long-term: Implement additional verification steps for sensitive actions, such as re-authentication or email confirmation.
  4. Monitoring: Enable detailed logging for invitation acceptance events and set up alerts for anomalies.

Valters IT
Securing Digital Frontiers

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-64725/ · 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.