HexBrain

Browse / CVEs / CVE-2026-44338

CVE-2026-44338· CWE-306

PraisonAI - Authentication Bypass

highseverity
7.3CVSS score
32.6%likelihood of exploitation, next 30 days
98%of all CVEs are less likely
Readycheck to confirm it

PraisonAI 2.5.6 to < 4.6.34 contains a broken authentication caused by disabled default authentication in legacy Flask API server, letting remote attackers access /agents and trigger workflows without token, exploit requires network access to API server.

Impact

Remote attackers can access and trigger agent workflows without authentication, potentially leading to unauthorized actions or data exposure.

Fix

Upgrade to version 4.6.34 or later.

How to confirm it

Send: GET {{BaseURL}}/agents
Positive when: status_code == 200 and contains_all(body, 'agent_file', 'agents') and contains(header, 'application/json')

Run it with nuclei: nuclei -id CVE-2026-44338 -u <target>

The full check
id: CVE-2026-44338

info:
  name: PraisonAI - Authentication Bypass
  author: jnoza
  severity: high
  description: |
    PraisonAI 2.5.6 to < 4.6.34 contains a broken authentication caused by disabled default authentication in legacy Flask API server, letting remote attackers access /agents and trigger workflows without token, exploit requires network access to API server.
  impact: |
    Remote attackers can access and trigger agent workflows without authentication, potentially leading to unauthorized actions or data exposure.
  remediation: Upgrade to version 4.6.34 or later.
  reference:
    - https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-6rmh-7xcm-cpxj
    - https://webflow.sysdig.com/blog/cve-2026-44338-praisonai-authentication-bypass-in-under-4-hours-and-the-growing-trend-of-rapid-exploitation
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
    cvss-score: 7.3
    cve-id: CVE-2026-44338
    epss-score: 0.32591
    epss-percentile: 0.9835
    cwe-id: CWE-306
  metadata:
    verified: true
    max-request: 1
    shodan-query: html:"PraisonAI"
  tags: cve,cve2026,praisonai,auth-bypass,vkev

http:
  - method: GET
    path:
      - "{{BaseURL}}/agents"

    matchers:
      - type: dsl
        dsl:
          - "status_code == 200"
          - "contains_all(body, 'agent_file', 'agents')"
          - "contains(header, 'application/json')"
        condition: and

References

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