All vulnerabilities
CVE-2026-56836GHSA-5qw8-f2g9-ff29PYSEC-2026-3502

PraisonAI recipe serve Typer command bypasses the non-localhost authentication guard

MervinPraison PraisonAIPyPILibraries & packages
CVSS
8.2High
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)No scoreNo FIRST EPSS score in this snapshot yet
Fixed in4.6.59Fixed versionOSV
Published23 Oct 2026Updated 23 Oct 2026CVE List

What fixes it

  • 4.6.59praisonai, PyPIOSVpip install "praisonai>=4.6.59"

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

PraisonAI is a multi-agent teams system. From version 4.5.112 to before version 4.6.59, PraisonAI's installed console entrypoint is Typer-first. In current releases, the recipe command is registered in the Typer app and praisonai recipe serve dispatches to the deprecated Typer command in src/praisonai/praisonai/cli/commands/recipe.py. That Typer command can start the Recipe HTTP server on a non-localhost interface with no authentication. It prints a deprecation warning, and then launches the server. Because config.auth is absent, create_app() does not attach the API-key or JWT middleware. Unauthenticated requests can then reach the recipe API and, when enabled, /admin/reload. This issue has been patched in version 4.6.59.

Text from CVE List

Affected versions 52

  • PraisonAIaffected: >= 4.5.112, < 4.6.59CVE List
  • praisonai, PyPIfrom 4.5.112, fixed in 4.6.59OSV
  • praisonai, PyPI4.5.112OSV
  • praisonai, PyPI4.5.113OSV
  • praisonai, PyPI4.5.114OSV
  • praisonai, PyPI4.5.115OSV
  • praisonai, PyPI4.5.117OSV
  • praisonai, PyPI4.5.118OSV
  • praisonai, PyPI4.5.119OSV
  • praisonai, PyPI4.5.120OSV
  • praisonai, PyPI4.5.121OSV
  • praisonai, PyPI4.5.122OSV
  • praisonai, PyPI4.5.123OSV
  • praisonai, PyPI4.5.124OSV
  • praisonai, PyPI4.5.125OSV
  • praisonai, PyPI4.5.126OSV
  • praisonai, PyPI4.5.127OSV
  • praisonai, PyPI4.5.128OSV
  • praisonai, PyPI4.5.129OSV
  • praisonai, PyPI4.5.130OSV
  • praisonai, PyPI4.5.131OSV
  • praisonai, PyPI4.5.132OSV
  • praisonai, PyPI4.5.133OSV
  • praisonai, PyPI4.5.134OSV
  • praisonai, PyPI4.5.135OSV
  • praisonai, PyPI4.5.136OSV
  • praisonai, PyPI4.5.137OSV
  • praisonai, PyPI4.5.139OSV
  • praisonai, PyPI4.5.140OSV
  • praisonai, PyPI4.5.143OSV
  • praisonai, PyPI4.5.144OSV
  • praisonai, PyPI4.5.145OSV
  • praisonai, PyPI4.5.149OSV
  • praisonai, PyPI4.6.10OSV
  • praisonai, PyPI4.6.11OSV
  • praisonai, PyPI4.6.12OSV
  • praisonai, PyPI4.6.13OSV
  • praisonai, PyPI4.6.14OSV
  • praisonai, PyPI4.6.15OSV
  • praisonai, PyPI4.6.16OSV
  • praisonai, PyPI4.6.18OSV
  • praisonai, PyPI4.6.19OSV
  • praisonai, PyPI4.6.20OSV
  • praisonai, PyPI4.6.21OSV
  • praisonai, PyPI4.6.22OSV
  • praisonai, PyPI4.6.23OSV
  • praisonai, PyPI4.6.24OSV
  • praisonai, PyPI4.6.25OSV
  • praisonai, PyPI4.6.26OSV
  • praisonai, PyPI4.6.27OSV
  • praisonai, PyPI4.6.28OSV
  • praisonai, PyPI4.6.29OSV

References 1