CVE-2026-25517

2.7 LOW

📋 TL;DR

This CVE describes a missing authorization vulnerability in Wagtail CMS preview endpoints. Authenticated Wagtail admin users can craft form submissions to preview any page, snippet, or site setting object with arbitrary data, potentially exposing database contents that should only be accessible to users with edit permissions. The vulnerability requires admin access and cannot be exploited by ordinary site visitors.

💻 Affected Systems

Products:
  • Wagtail CMS
Versions: All versions prior to 6.3.6, 7.0.4, 7.1.3, 7.2.2, and 7.3
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems with Wagtail admin enabled and preview functionality configured. Requires authenticated admin access.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

An authenticated malicious admin could use crafted previews to extract sensitive database information through template rendering, potentially exposing confidential data or system details.

🟠

Likely Case

Privilege escalation where users with limited admin access can preview content they shouldn't have permission to view, potentially exposing sensitive data through template context.

🟢

If Mitigated

Limited impact if proper access controls and template sanitization are already in place, though unauthorized preview access remains possible.

🌐 Internet-Facing: MEDIUM - While exploitable only by authenticated users, internet-facing Wagtail admin interfaces could be targeted by compromised accounts.
🏢 Internal Only: MEDIUM - Internal admin users with malicious intent or compromised credentials could exploit this to access unauthorized data.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires knowledge of model fields and crafting specific form submissions. No public exploit code identified in references.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 6.3.6, 7.0.4, 7.1.3, 7.2.2, or 7.3

Vendor Advisory: https://github.com/wagtail/wagtail/security/advisories

Restart Required: Yes

Instructions:

1. Identify your Wagtail version. 2. Upgrade to the patched version matching your major release: 6.x → 6.3.6, 7.0.x → 7.0.4, 7.1.x → 7.1.3, 7.2.x → 7.2.2, or 7.3. 3. Restart your Django application server. 4. Verify the fix by testing preview functionality.

🔧 Temporary Workarounds

Disable preview endpoints

all

Temporarily disable Wagtail preview functionality until patching is possible

Modify Django settings to remove preview URL patterns or override preview views

Restrict admin access

all

Limit Wagtail admin access to only essential personnel

Review and tighten Django authentication and authorization configurations

🧯 If You Can't Patch

  • Implement strict access controls to limit Wagtail admin access to trusted users only
  • Audit and sanitize all templates to prevent data leakage even if preview is exploited

🔍 How to Verify

Check if Vulnerable:

Check Wagtail version via Python: python -c "import wagtail; print(wagtail.__version__)" and compare to affected versions

Check Version:

python -c "import wagtail; print(wagtail.__version__)"

Verify Fix Applied:

After patching, test preview functionality with a non-editor user account to ensure proper permission checks

📡 Detection & Monitoring

Log Indicators:

  • Unusual preview requests from admin users, especially for objects they shouldn't access
  • Multiple failed permission checks on preview endpoints

Network Indicators:

  • HTTP POST requests to /admin/preview/ endpoints with crafted form data

SIEM Query:

source="wagtail_logs" AND (url_path="/admin/preview/" OR event="preview") AND user_permissions!="edit"

🔗 References

📤 Share & Export