CVE-2023-5893

8.8 HIGH

📋 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

Products:
  • PKP-Lib
  • Open Journal Systems (OJS)
  • Open Monograph Press (OMP)
  • Open Conference Systems (OCS)
Versions: All versions prior to 3.3.0-16
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: All installations using vulnerable PKP-Lib versions are affected regardless of configuration.

📦 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.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

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

all

Add custom CSRF token validation to all state-changing endpoints

# Requires custom PHP development - no single command

Use SameSite Cookies

all

Configure 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"

🔗 References

📤 Share & Export