CVE-2026-23838

N/A Unknown

📋 TL;DR

Tandoor Recipes' default NixOS configuration exposes the SQLite database file externally when using SQLite with default MEDIA_ROOT settings. This allows unauthenticated attackers to download the entire database via HTTP. Affects Tandoor Recipes installations on NixOS with default configurations.

💻 Affected Systems

Products:
  • Tandoor Recipes
Versions: 23.05 to 26.05 (exclusive)
Operating Systems: NixOS
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects default NixOS configurations using SQLite with MEDIA_ROOT at /var/lib/tandoor-recipes. Configurations with system.stateVersion >= 26.05 are not vulnerable by default.

⚠️ 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

Complete database exfiltration including user credentials, personal data, and recipe content, potentially leading to credential reuse attacks and privacy violations.

🟠

Likely Case

Unauthenticated database download exposing user information, recipe data, and potentially hashed passwords.

🟢

If Mitigated

Database remains inaccessible externally with proper configuration or patching.

🌐 Internet-Facing: HIGH - Database file is directly accessible via HTTP without authentication when exposed to internet.
🏢 Internal Only: MEDIUM - Internal attackers or compromised systems could access database, but requires network access.

🎯 Exploit Status

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

Exploitation requires direct HTTP access to the database file at /media/db.sqlite3 or similar path. No authentication or special tools needed.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: NixOS 26.05

Vendor Advisory: https://github.com/NixOS/nixpkgs/security/advisories/GHSA-g8w3-p77x-mmxh

Restart Required: Yes

Instructions:

1. Update NixOS to version 26.05 or later. 2. Ensure system.stateVersion is set to >= 26.05. 3. Restart Tandoor Recipes service. For NixOS 25.11, apply backported patch manually.

🔧 Temporary Workarounds

Move MEDIA_ROOT to subdirectory

linux

Change MEDIA_ROOT configuration to a subdirectory of /var/lib/tandoor-recipes to separate database from media files.

Edit NixOS configuration: services.tandoor-recipes.mediaRoot = "/var/lib/tandoor-recipes/media";
nixos-rebuild switch

Switch to PostgreSQL

linux

Migrate from SQLite to PostgreSQL database backend.

Configure PostgreSQL in NixOS configuration
Migrate database using Tandoor Recipes documentation

🧯 If You Can't Patch

  • Configure web server (nginx/apache) to block access to db.sqlite3 files
  • Implement network-level restrictions to limit access to media directory

🔍 How to Verify

Check if Vulnerable:

Check if http://your-server/media/db.sqlite3 returns the database file. Verify configuration: services.tandoor-recipes.mediaRoot is set to /var/lib/tandoor-recipes.

Check Version:

nixos-version

Verify Fix Applied:

Attempt to access http://your-server/media/db.sqlite3 - should return 404 or access denied. Verify MEDIA_ROOT is set to subdirectory.

📡 Detection & Monitoring

Log Indicators:

  • HTTP 200 responses for db.sqlite3 file access
  • Unusual database file download patterns

Network Indicators:

  • HTTP GET requests for /media/db.sqlite3
  • Large file downloads from media directory

SIEM Query:

http.url:"/media/db.sqlite3" AND http.status_code:200

🔗 References

📤 Share & Export