CVE-2023-5893
📋 TL;DR
This CSRF vulnerability in PKP-Lib allows attackers to trick authenticated users into performing unintended actions by submitting malicious requests. It affects all users of PKP-Lib (Open Journal Systems) installations prior to version 3.3.0-16. Attackers could modify system settings or user data without the victim's knowledge.
💻 Affected Systems
- PKP-Lib
- Open Journal Systems (OJS)
- Open Monograph Press (OMP)
- Open Conference Systems (OCS)
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Attackers could gain administrative privileges, modify journal configurations, delete content, or compromise user accounts through forged requests executed by authenticated users.
Likely Case
Attackers modify journal settings, change user permissions, or alter submission workflows through CSRF attacks targeting administrators or editors.
If Mitigated
With proper CSRF protections and user awareness, impact is limited to failed attack attempts with no successful exploitation.
🎯 Exploit Status
Exploitation requires tricking authenticated users into visiting malicious pages. No authentication bypass needed.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 3.3.0-16 and later
Vendor Advisory: https://github.com/pkp/pkp-lib/commit/992ca674e9fb705751b1cbf929a1856ebe29b30a
Restart Required: No
Instructions:
1. Backup your installation. 2. Update PKP-Lib to version 3.3.0-16 or later. 3. Clear application caches. 4. Verify CSRF tokens are properly implemented.
🔧 Temporary Workarounds
Implement CSRF Protection Middleware
allAdd custom CSRF token validation to all state-changing endpoints
# Requires custom PHP development - no single command
Use SameSite Cookies
allConfigure session cookies with SameSite=Strict attribute
# In PHP configuration: session.cookie_samesite = "Strict"
🧯 If You Can't Patch
- Implement web application firewall (WAF) rules to detect and block CSRF patterns
- Educate users about CSRF risks and safe browsing practices
🔍 How to Verify
Check if Vulnerable:
Check PKP-Lib version in admin interface or by examining version files
Check Version:
grep -r 'version' /path/to/pkp-lib/ | grep -i '3\.'
Verify Fix Applied:
Verify installation is version 3.3.0-16 or later and test CSRF token implementation
📡 Detection & Monitoring
Log Indicators:
- Multiple failed state-changing requests from same IP
- Requests missing CSRF tokens
- Unusual administrative actions from unexpected user sessions
Network Indicators:
- HTTP POST requests without Referer headers
- Requests with mismatched Origin headers
SIEM Query:
source="web_logs" action="POST" csrf_token="missing" OR csrf_token="invalid"