CVE-2024-11711
📋 TL;DR
This SQL injection vulnerability in the WP Job Portal WordPress plugin allows unauthenticated attackers to inject malicious SQL queries via the 'resumeid' parameter. Attackers can extract sensitive database information including user credentials, job applications, and other recruitment data. All WordPress sites using WP Job Portal versions 2.2.1 and earlier are affected.
💻 Affected Systems
- WP Job Portal WordPress Plugin
📦 What is this software?
Wp Job Portal by Wpjobportal
⚠️ Risk & Real-World Impact
Worst Case
Complete database compromise leading to theft of all user data, administrative credentials, and potential website takeover through privilege escalation.
Likely Case
Extraction of sensitive recruitment data including resumes, job applications, personal information, and user credentials.
If Mitigated
Limited data exposure if database permissions are properly configured and sensitive data is encrypted.
🎯 Exploit Status
SQL injection via GET/POST parameters requires minimal technical skill. Public proof-of-concept code exists in GitHub gists.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 2.2.3
Vendor Advisory: https://plugins.trac.wordpress.org/changeset/3202327/wp-job-portal/tags/2.2.3/modules/resume/model.php
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins. 3. Find WP Job Portal. 4. Click 'Update Now' if available. 5. If manual update needed, download version 2.2.3+ from WordPress.org and replace plugin files.
🔧 Temporary Workarounds
Temporary Plugin Deactivation
allDisable the vulnerable plugin until patched
wp plugin deactivate wp-job-portal
Web Application Firewall Rule
linuxBlock SQL injection patterns targeting resumeid parameter
ModSecurity rule: SecRule ARGS:resumeid "@detectSQLi" "id:1001,phase:2,deny,status:403"
🧯 If You Can't Patch
- Implement strict input validation for all resumeid parameters
- Deploy web application firewall with SQL injection protection rules
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin panel > Plugins > WP Job Portal version number
Check Version:
wp plugin get wp-job-portal --field=version
Verify Fix Applied:
Verify plugin version is 2.2.3 or higher and review the resume/model.php file for proper parameterized queries
📡 Detection & Monitoring
Log Indicators:
- Unusual SQL error messages in WordPress logs
- Multiple requests with resumeid parameter containing SQL keywords
- High volume of requests to resume-related endpoints
Network Indicators:
- HTTP requests with resumeid parameter containing UNION, SELECT, OR 1=1, --, #, /* patterns
SIEM Query:
source="wordpress.log" AND ("resumeid" AND ("UNION" OR "SELECT" OR "1=1" OR "--" OR "#" OR "/*"))
🔗 References
- https://gist.github.com/g1-nhantv/b388ef3b4ff57c69f719c363d7fea399#file-resume_model-php-L35
- https://plugins.trac.wordpress.org/changeset/3202327/wp-job-portal/tags/2.2.3/modules/resume/model.php?old=3187129&old_path=wp-job-portal%2Ftags%2F2.2.2%2Fmodules%2Fresume%2Fmodel.php
- https://www.wordfence.com/threat-intel/vulnerabilities/id/5d8961fd-68ac-4a10-ab26-cfcda27c18e8?source=cve