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

CVE-2025-26691

CVE-2025-26691 Information Disclosure in Openharmony
📅 PUBLISHED: 2025-06-08 11:47 UTC 🔄 UPDATED: 2026-08-12 14:53 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the 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.06%
👁️
0.06% probability
1.5× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: TA0007
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 5.5
AV: L Attack Vector Local
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: N Integrity None
A: N Availability None
5.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-26691 is a local information disclosure vulnerability in OpenHarmony versions up to and including v5.0.3. The flaw resides in the permission management subsystem, specifically within the get permission API. A local attacker with low privileges can exploit this to leak sensitive information, such as system configuration details or other application data, that should be protected by the permission model. The vulnerability has a CVSS score of 5.5 (Medium) and a very low EPSS score (0.0%), indicating that exploitation is not currently widespread in the wild. No public proof-of-concept code or exploit templates are available at this time.

⚡ 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

Supply Chain & Package Security

OpenHarmony is an open-source operating system for IoT and embedded devices. The vulnerability is in the core OS permission management, not in a specific package manager (NPM, PyPI, Go, Ruby). However, organizations using OpenHarmony in their supply chain should assess the risk of local information leakage from compromised devices.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
  • Base Score: 5.5 (Medium)
  • Attack Vector: Local (AV:L) – The attacker must have local access to the device.
  • Attack Complexity: Low (AC:L) – No special conditions are required.
  • Privileges Required: Low (PR:L) – The attacker needs a standard user account.
  • User Interaction: None (UI:N) – No user action is needed.
  • Scope: Unchanged (S:U) – The vulnerability does not affect other components.
  • Confidentiality Impact: High (C:H) – Sensitive information can be fully disclosed.
  • Integrity Impact: None (I:N) – No data modification.
  • Availability Impact: None (A:N) – No denial of service.

Threat Level: Medium. The local attack vector and low privileges required make it a realistic threat for multi-user IoT devices or kiosk systems. The lack of public exploits reduces immediate risk, but the vulnerability is unpatched.

Deep Dive & Mechanics

The vulnerability exists in the permission management service of OpenHarmony. The get permission API is designed to return the permission status of a given application or process. Due to insufficient access control checks, a local attacker can call this API to enumerate permissions of other processes, including system services and privileged applications.

Root Cause: The API does not verify that the caller has the right to query permissions for arbitrary UIDs or process IDs. This allows an unprivileged process to leak the permission state of any other process on the system.

Attack Scenario:

  1. An attacker gains a low-privileged shell on an OpenHarmony device (e.g., via a compromised app or physical access).
  2. The attacker enumerates running processes and their UIDs.
  3. The attacker repeatedly calls the get permission API with different UIDs to map out which processes have elevated permissions (e.g., system, network, or storage permissions).
  4. This information can be used to identify high-value targets for further exploitation (e.g., a process with CAP_SYS_ADMIN).

Vulnerable vs. Patched Code

Since no official patch is available, the following is a hypothetical comparison based on the vulnerability description.

Vulnerable Code (OpenHarmony v5.0.3):

// permission_manager.c
int GetPermissionForUid(int uid, const char* permission) {
    // No check on caller's identity
    PermissionEntry* entry = FindPermissionEntry(uid, permission);
    if (entry) {
        return entry->granted;
    }
    return PERMISSION_DENIED;
}

Patched Code (Hypothetical):

// permission_manager.c
int GetPermissionForUid(int caller_uid, int target_uid, const char* permission) {
    // Check if caller has permission to query other UIDs
    if (caller_uid != target_uid && !HasCapability(caller_uid, CAP_QUERY_PERMISSIONS)) {
        return PERMISSION_DENIED;
    }
    PermissionEntry* entry = FindPermissionEntry(target_uid, permission);
    if (entry) {
        return entry->granted;
    }
    return PERMISSION_DENIED;
}

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Local access to an OpenHarmony device (v5.0.3 or earlier).
  • A low-privileged user account or shell.

Exploitation Steps:

  1. Enumerate UIDs:
    ls -la /proc/*/status | grep Uid
    
  2. Craft a script to leak permissions:
    import os
    import sys
    
    def get_permission(uid, perm):
        # Hypothetical API call
        fd = os.open(f"/dev/permission/{uid}/{perm}", os.O_RDONLY)
        data = os.read(fd, 1024)
        os.close(fd)
        return data.strip()
    
    target_uids = [1000, 1001, 2000]  # Example UIDs
    permissions = ["system", "network", "storage"]
    
    for uid in target_uids:
        for perm in permissions:
            result = get_permission(uid, perm)
            print(f"UID {uid} - {perm}: {result}")
    
  3. Analyze output to identify processes with high-value permissions.

Blue Team

Detection:

  • Monitor for unusual calls to the permission management API from non-system processes.
  • Look for patterns of rapid UID enumeration (e.g., many open calls to /dev/permission/*).

Hunting:

  • Use auditd to log all open syscalls to permission-related device files.
  • Correlate with process ancestry to detect suspicious scripts.

Mitigation:

  • Restrict local shell access to trusted users only.
  • Apply the principle of least privilege to all applications.
  • Monitor for the release of an official patch from OpenHarmony.

Indicators of Compromise (IOCs)

  • File Paths:
    • /dev/permission/* (if exposed as device files)
    • /proc/*/status (used for UID enumeration)
  • Process Names:
    • sh, bash, python3, or any script interpreter running with low privileges.
  • Network Connections: None (local attack only).
  • Log Entries:
    • Repeated open calls to permission API from the same process.
    • Audit logs showing syscall=open with path containing permission.

Detection Engineering

YARA Rule

rule CVE_2025_26691_Permission_Leak {
    meta:
        description = "Detects attempts to exploit CVE-2025-26691 by enumerating permissions"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-26691"
    strings:
        $s1 = "/dev/permission/" ascii wide
        $s2 = "get_permission" ascii wide
        $s3 = "Uid" ascii wide
    condition:
        any of ($s*) and #s1 > 5
}

Sigma Rule

title: CVE-2025-26691 Permission Enumeration Attempt
id: 8a9b3c2d-1e5f-4a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects multiple calls to the permission API from a single process
author: Valters IT
logsource:
    product: linux
    service: auditd
detection:
    selection:
        syscall: open
        path|contains: '/dev/permission/'
    condition: selection | count() by exe > 10 within 60s
falsepositives:
    - Legitimate system services querying permissions
level: medium

Suricata Rule

alert ip any any -> any any (msg:"CVE-2025-26691 Permission Enumeration Attempt"; content:"/dev/permission/"; offset:0; depth:100; classtype:attempted-recon; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Restrict local access: Disable shell access for non-administrative users on OpenHarmony devices.
  2. Monitor logs: Enable auditd and monitor for suspicious permission API calls.
  3. Apply patches: Watch the OpenHarmony security advisory page for an official fix.

Long-Term Fixes:

  • The vendor should implement proper access control checks in the get permission API, verifying that the caller has the right to query permissions for the target UID.
  • Introduce a capability (e.g., CAP_QUERY_PERMISSIONS) that must be held to query other processes' permissions.

Workarounds:

  • If source code is available, apply the hypothetical patch shown in the "Vulnerable vs. Patched Code" section.
  • Use SELinux or AppArmor to confine low-privileged processes and prevent them from accessing the permission API.

Valters IT
Securing OpenHarmony Ecosystems

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

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