CVE-2024-9000

6.5 MEDIUM

📋 TL;DR

This vulnerability allows unauthorized users to create or modify checklists in lunary-ai/lunary, bypassing permission checks. Attackers can also spoof existing checklists by reusing slugs, potentially replacing legitimate data with malicious content. All users running affected versions of lunary-ai/lunary are impacted.

💻 Affected Systems

Products:
  • lunary-ai/lunary
Versions: All versions before 1.4.26
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all deployments using the checklists.post() endpoint without additional access control layers.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete data integrity compromise where legitimate checklists are replaced with malicious data, potentially leading to operational disruption, data loss, or secondary attacks.

🟠

Likely Case

Unauthorized checklist creation/modification leading to data pollution, confusion among legitimate users, and potential privilege escalation through checklist manipulation.

🟢

If Mitigated

Minimal impact with proper access controls and input validation preventing unauthorized modifications.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires some user access but bypasses permission checks. The vulnerability is straightforward to exploit once identified.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.4.26

Vendor Advisory: https://github.com/lunary-ai/lunary/commit/a02861ef9bb6ce860a35f7b8f178d58859cd85f0

Restart Required: Yes

Instructions:

1. Update lunary-ai/lunary to version 1.4.26 or later. 2. Restart the application. 3. Verify the fix by testing checklist creation with unauthorized users.

🔧 Temporary Workarounds

Disable checklists.post() endpoint

all

Temporarily disable the vulnerable endpoint until patching is possible

Modify application configuration to disable checklists.post() endpoint

Implement API gateway access control

all

Add additional access control layer at API gateway level

Configure API gateway to enforce proper permissions for checklists.post() endpoint

🧯 If You Can't Patch

  • Implement strict network segmentation to limit access to the lunary application
  • Deploy a web application firewall (WAF) with custom rules to detect and block unauthorized checklist modifications

🔍 How to Verify

Check if Vulnerable:

Test if unauthorized users can create/modify checklists via the checklists.post() endpoint or reuse existing slugs.

Check Version:

Check package.json or application version endpoint for lunary version

Verify Fix Applied:

Verify that unauthorized users cannot create/modify checklists and that slug uniqueness is enforced.

📡 Detection & Monitoring

Log Indicators:

  • Unauthorized checklist creation attempts
  • Multiple checklist creations with same slug
  • Failed permission checks for checklists.post()

Network Indicators:

  • Unusual POST requests to checklists endpoint from unauthorized users
  • High frequency of checklist creation requests

SIEM Query:

source="lunary" AND (event="checklist_creation" AND user_role!="admin") OR (slug_duplication_detected)

🔗 References

📤 Share & Export