CVE-2024-40442

7.2 HIGH

📋 TL;DR

This vulnerability in Doccano's annotation tools allows remote attackers to escalate privileges through crafted REST requests. It affects Doccano v1.8.4 and Auto Labeling Pipeline v0.1.23, potentially enabling unauthorized access to administrative functions.

💻 Affected Systems

Products:
  • Doccano
  • Doccano Auto Labeling Pipeline
Versions: Doccano v1.8.4, Auto Labeling Pipeline v0.1.23
Operating Systems: All platforms running affected Doccano versions
Default Config Vulnerable: ⚠️ Yes
Notes: Affects both the main Doccano application and the Auto Labeling Pipeline module. Any deployment using these exact versions is vulnerable.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise where attacker gains administrative control, accesses sensitive annotation data, and potentially executes arbitrary code on the server.

🟠

Likely Case

Unauthorized privilege escalation allowing attackers to modify annotation projects, access confidential data, or disrupt machine learning workflows.

🟢

If Mitigated

Limited impact with proper network segmentation, strong authentication, and monitoring in place to detect privilege escalation attempts.

🌐 Internet-Facing: HIGH - Remote exploitation possible without authentication, making internet-facing instances particularly vulnerable.
🏢 Internal Only: MEDIUM - Internal attackers could exploit this to gain elevated privileges within the Doccano environment.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Crafting REST requests requires minimal technical skill. Public references suggest exploitation details are available.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Doccano > v1.8.4, Auto Labeling Pipeline > v0.1.23

Vendor Advisory: https://github.com/doccano/doccano/releases/tag/v1.8.4

Restart Required: Yes

Instructions:

1. Update Doccano to latest version > v1.8.4. 2. Update Auto Labeling Pipeline to latest version > v0.1.23. 3. Restart all Doccano services. 4. Verify no custom REST endpoints remain vulnerable.

🔧 Temporary Workarounds

Network Access Restriction

linux

Restrict network access to Doccano instances to trusted IPs only

iptables -A INPUT -p tcp --dport 8000 -s trusted_ip_range -j ACCEPT
iptables -A INPUT -p tcp --dport 8000 -j DROP

Web Application Firewall Rules

all

Implement WAF rules to block suspicious REST requests

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate Doccano instances from sensitive systems
  • Enable detailed logging and monitoring for privilege escalation attempts and unusual REST API calls

🔍 How to Verify

Check if Vulnerable:

Check Doccano version via web interface or by examining package version: pip show doccano

Check Version:

pip show doccano | grep Version && pip show doccano-auto-labeling-pipeline | grep Version

Verify Fix Applied:

Confirm version is > v1.8.4 for Doccano and > v0.1.23 for Auto Labeling Pipeline, then test REST endpoints for privilege escalation

📡 Detection & Monitoring

Log Indicators:

  • Unusual privilege changes in user logs
  • REST requests to administrative endpoints from non-admin users
  • Failed authentication followed by successful privileged actions

Network Indicators:

  • Unusual REST API patterns
  • Requests to privilege escalation endpoints
  • Traffic from unexpected sources to Doccano ports

SIEM Query:

source="doccano.log" AND (event="privilege_change" OR event="admin_access" OR http_method="POST" AND uri="/api/admin/*")

🔗 References

📤 Share & Export