CVE-2025-1686
📋 TL;DR
This vulnerability in Pebble Templates allows attackers with template editing privileges to read sensitive local files through the include tag. It affects all versions of the io.pebbletemplates:pebble package. Attackers can exploit this to access system files like /etc/passwd or process environment files.
💻 Affected Systems
- io.pebbletemplates:pebble
📦 What is this software?
Pebble by Pebbletemplates
⚠️ 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.
- Review the CVE details at NVD
- Check vendor security advisories for your specific version
- Test if the vulnerability is exploitable in your environment
- Consider updating to the latest version as a precaution
⚠️ Risk & Real-World Impact
Worst Case
High-privileged attacker reads sensitive system files, potentially exposing credentials, configuration secrets, or environment variables leading to complete system compromise.
Likely Case
Attacker with template editing access reads application configuration files, environment variables, or system files to gather information for further attacks.
If Mitigated
With proper access controls and the include tag disabled, attackers cannot exploit this vulnerability even with template editing privileges.
🎯 Exploit Status
Exploitation requires template editing privileges. The vulnerability is well-documented with public examples showing how to craft malicious include tags.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Not available
Vendor Advisory: https://github.com/PebbleTemplates/pebble/issues/680
Restart Required: Yes
Instructions:
No official patch available. Apply workaround by disabling the include tag in PebbleEngine configuration and restart the application.
🔧 Temporary Workarounds
Disable include tag in PebbleEngine
allConfigure PebbleEngine to disallow the include token parser tag, preventing file inclusion attacks
new PebbleEngine.Builder()
.registerExtensionCustomizer(new DisallowExtensionCustomizerBuilder()
.disallowedTokenParserTags(List.of("include"))
.build())
.build();
🧯 If You Can't Patch
- Implement strict access controls to prevent unauthorized users from creating or modifying Pebble templates
- Monitor and audit template creation/modification activities for suspicious patterns
🔍 How to Verify
Check if Vulnerable:
Check if your application uses io.pebbletemplates:pebble and allows template editing. Review build.gradle or pom.xml for Pebble dependency.
Check Version:
Check build configuration files: For Maven: grep -r "io.pebbletemplates" pom.xml; For Gradle: grep -r "io.pebbletemplates" build.gradle
Verify Fix Applied:
Verify the include tag is disabled in PebbleEngine configuration and test that file inclusion attempts fail.
📡 Detection & Monitoring
Log Indicators:
- Unusual template creation/modification events
- Failed file access attempts in application logs
- Include tag usage with suspicious file paths
Network Indicators:
- Unusual template uploads or modifications via API endpoints
SIEM Query:
Search for template modification events followed by file path inclusion patterns in application logs
🔗 References
- https://github.com/PebbleTemplates/pebble/issues/680
- https://github.com/PebbleTemplates/pebble/issues/688
- https://pebbletemplates.io/wiki/tag/include
- https://security.snyk.io/vuln/SNYK-JAVA-IOPEBBLETEMPLATES-8745594
- https://github.com/PebbleTemplates/pebble/pull/715
- https://security.snyk.io/vuln/SNYK-JAVA-IOPEBBLETEMPLATES-8745594