☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Pidgin logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.9 CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H 🐛 CWE-807
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2019-25544

CVE-2019-25544 Denial of Service in Pidgin
📅 PUBLISHED: 2026-03-21 13:16 UTC 🔄 UPDATED: 2026-09-23 20:24 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.19%
👁️
0.19% probability
4.7× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: Global License: Open Source
VULNERABLE: 2.13.0
CVSS VECTOR BREAKDOWN 6.9
AV: L Attack Vector Local
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: N Confidentiality None
I: N Integrity None
A: H Availability High
6.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2019-25544 is a denial of service (DoS) vulnerability in Pidgin 2.13.0, an open-source instant messaging client. The flaw allows a local attacker to crash the application by providing an excessively long username string (1000 characters) during account creation. When the user attempts to join a chat, the application crashes, making it unavailable. The vulnerability is classified as a buffer overflow (CWE-120) with a CVSS score of 6.2 (Medium). No official patch has been released, and the EPSS score is 0.0%, indicating low exploitation likelihood in the wild. However, local attackers can easily trigger the crash, impacting availability.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

CVSS Breakdown & Threat Level

  • CVSS Score: 6.2 (Medium)
  • Vector: CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
  • Attack Vector: Local (AV:L) – requires local access to the system.
  • Attack Complexity: Low (AC:L) – no special conditions needed.
  • Privileges Required: Low (PR:L) – attacker needs a user account.
  • User Interaction: None (UI:N) – no user action required beyond the attacker’s own actions.
  • Scope: Unchanged (S:U) – vulnerability does not affect other components.
  • Confidentiality Impact: None (C:N)
  • Integrity Impact: None (I:N)
  • Availability Impact: High (A:H) – application crash leads to denial of service.

Threat Level: Medium. The vulnerability is easy to exploit locally but requires an account on the system. It does not allow remote exploitation or data compromise.

Deep Dive & Mechanics

The vulnerability resides in the username handling logic during account creation in Pidgin 2.13.0. When a user creates a new account, the username field is not properly validated for length. An attacker can input a string of 1000 characters (or more) as the username. This excessively long string is stored in memory without bounds checking. When the user later attempts to join a chat, the application processes the username, leading to a buffer overflow that corrupts memory and causes a crash.

The crash occurs because the username is used in chat-related operations (e.g., displaying the user’s name in the chat window). The overflow overwrites adjacent memory, causing an access violation or segmentation fault. The application becomes unavailable until restarted.

Root Cause: Lack of input validation on the username field length during account creation.

Attack Scenario:

  1. Attacker logs into the system with a low-privilege account.
  2. Attacker launches Pidgin and creates a new account with a username of 1000 characters.
  3. Attacker saves the account and attempts to join a chat (e.g., by clicking a chat room).
  4. Pidgin crashes immediately, denying service to the user.

Vulnerable vs. Patched Code

Vulnerable Code (Pidgin 2.13.0): The username input is accepted without length validation. The following pseudocode illustrates the issue:

void create_account(char *username) {
    // No length check
    strcpy(account->username, username); // Buffer overflow if username > buffer size
}

Patched Code (Hypothetical): A proper fix would include length validation and truncation or rejection of long usernames:

void create_account(char *username) {
    if (strlen(username) > MAX_USERNAME_LEN) {
        // Reject or truncate
        username[MAX_USERNAME_LEN] = '\0';
    }
    strncpy(account->username, username, MAX_USERNAME_LEN);
}

No official patch has been released as of the latest data.

Exploitation & Lab Setup

Red Team (Exploitation)

Lab Setup:

  • OS: Ubuntu 20.04 LTS
  • Software: Pidgin 2.13.0 (install via sudo apt-get install pidgin=2.13.0-1)
  • User: Low-privilege user account

Exploitation Steps:

  1. Log in as a low-privilege user.
  2. Launch Pidgin: pidgin &
  3. Create a new account with a username of 1000 characters:
    python3 -c "print('A'*1000)" > /tmp/long_username.txt
    
    In Pidgin GUI, go to Accounts > Manage Accounts > Add. Enter the long username from the file.
  4. Save the account.
  5. Join a chat (e.g., click on a chat room in the buddy list).
  6. Observe Pidgin crash.

Proof of Concept (PoC): No public exploit code is available, but the above steps demonstrate the vulnerability.

Blue Team (Defense)

Detection:

  • Monitor for Pidgin crashes in logs (e.g., /var/log/syslog or journalctl).
  • Look for unusually long usernames in Pidgin account files (e.g., ~/.purple/accounts.xml).

Mitigation:

  • Restrict local user permissions to prevent account creation.
  • Use application whitelisting to block Pidgin if not needed.
  • Monitor for abnormal process terminations.

Indicators of Compromise (IOCs)

  • Process Crash: Pidgin process terminates unexpectedly with segmentation fault.
  • Log Entry: pidgin[PID]: segfault at ADDRESS ip IP sp SP error ERROR in libpurple.so
  • File Artifact: ~/.purple/accounts.xml contains a username field with > 256 characters.
  • Network: No network IOCs as the vulnerability is local.

Detection Engineering

YARA Rule

rule CVE_2019_25544_Pidgin_Username_Overflow {
    meta:
        description = "Detects Pidgin account files with excessively long usernames indicative of CVE-2019-25544"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2019-25544"
    strings:
        $username_tag = "<name>"
        $long_string = /<name>[A-Za-z0-9]{257,}<\/name>/
    condition:
        $username_tag and #long_string > 0
}

Sigma Rule

title: Pidgin Crash Due to Long Username
id: 8a9b3c2d-1e5f-4a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects Pidgin crashes caused by excessively long usernames (CVE-2019-25544)
author: Valters IT
date: 2025-04-10
logsource:
    product: linux
    service: syslog
detection:
    selection:
        - EventID: 11  # Linux auditd event for segfault
        - Message|contains: "pidgin"
        - Message|contains: "segfault"
    condition: selection
falsepositives:
    - Legitimate crashes due to other bugs
level: medium

Suricata Rule

alert tcp any any -> any any (msg:"CVE-2019-25544 Pidgin Local DoS Attempt"; flow:to_server; content:"|00|"; within:1000; sid:1000001; rev:1;)

Note: Suricata rule is generic as the vulnerability is local; network detection is not applicable.

Remediation & Mitigation

Immediate Actions:

  1. Upgrade Pidgin: If a patched version becomes available, upgrade immediately. As of now, no patch exists.
  2. Restrict Local Access: Limit user permissions to prevent account creation in Pidgin.
  3. Input Validation: Implement client-side input validation to reject usernames longer than 256 characters (e.g., via a wrapper script).

Long-Term Fix:

  • The Pidgin development team should add length validation in the account creation dialog.
  • Use strncpy or similar safe functions to prevent buffer overflows.

Workaround:

  • Do not use Pidgin on multi-user systems where untrusted users have local access.
  • Monitor for crashes and restart Pidgin automatically (e.g., via systemd restart).

Valters IT

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2019-25544/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.