{"answers":{"affected":"3 open source packages ship an affected version, including praisonai-platform.","exploited":"It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-47416 exists.","fix":"Upgrade praisonai-platform to 0.1.4 or later.","what":"CVE-2026-47416 is a critical vulnerability in MervinPraison praisonai-platform, published on 21 Jul 2026. Any signed-in user can exploit it over the network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-47416 and fix it if it is affected.\n\nWhat it is: CVE-2026-47416 is a critical vulnerability in MervinPraison praisonai-platform, published on 21 Jul 2026. Any signed-in user can exploit it over the network, with no action from the victim.\nExploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-47416 exists.\n\nAffected packages and fixed versions:\n- praisonai-platform (PyPI): affected all versions; fixed in 0.1.4\n- praisonai-platform (PyPI): affected all versions; fixed in 0.1.4\n- praisonai-platform (PyPI): affected all versions; fixed in 0.1.4\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-47416/ (Markdown: https://insights.sbomify.com/CVE-2026-47416/index.md)","id":"CVE-2026-47416","markdown":"https://insights.sbomify.com/CVE-2026-47416/index.md","name":"CVE-2026-47416","record":{"aliases":["GHSA-c2m8-4gcg-v22g","PYSEC-2026-481"],"analysis":{"component_type":"web_application","fix_type":"upgrade","impacts":["privilege_escalation"],"network_reachable":"yes","non_default_config":false,"product_category":"PraisonAI Platform","requires_auth":"low_privilege","summary":"Any workspace member can promote themselves or others to owner due to missing authorization checks in the member update endpoint.","user_interaction":"not_required","vuln_class":"privilege_escalation"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[],"cvss":{"score":9.6,"severity":"critical","source":"cna","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N","version":"3.1"},"cwes":[{"id":"CWE-862","name":"Missing Authorization"},{"id":"CWE-269","name":"Improper Privilege Management"}],"description":"PraisonAI Platform is the platform layer for the PraisonAI multi-agent teams system. Versions prior to 0.1.4 are vulnerable to vertical privilege escalation. The `PATCH /workspaces/{workspace_id}/members/{user_id}` endpoint is gated by `require_workspace_member(workspace_id)`, which defaults to `min_role=\"member\"` and is never overridden by the route. The handler then calls `MemberService.update_role(workspace_id, user_id, body.role)` which sets the target member's role to whatever the request body specifies, with no check that the caller has owner-or-admin privilege, no check that the new role is not higher than the caller's own, and no check that the caller is not silently promoting themselves. PraisonAI Platform version 0.1.4 patches the issue.","ecosystems":["PyPI"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"weaponised"},"has_fix":true,"headline":"praisonai-platform: Any workspace member can promote themselves or others to owner via PATCH /workspaces/{id}/members/{user_id}","id":"CVE-2026-47416","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"PyPI","product":null,"products":[],"type":"privilege_escalation","year":"2026"},"n_packages":3,"n_references":2,"next":{"headline":"praisonai-platform: Comment endpoints accept any issue_id without workspace ownership check, cross-workspace comment read and post IDOR","id":"CVE-2026-47417"},"packages":[{"ecosystem":"PyPI","fixed":["0.1.4"],"introduced":["0"],"last_affected":[],"package":"praisonai-platform","purl":null,"source":"GHSA-c2m8-4gcg-v22g"},{"ecosystem":"PyPI","fixed":["0.1.4"],"introduced":["0"],"last_affected":[],"package":"praisonai-platform","purl":"pkg:pypi/praisonai-platform","source":"GHSA-c2m8-4gcg-v22g"},{"ecosystem":"PyPI","fixed":["0.1.4"],"introduced":["0"],"last_affected":[],"package":"praisonai-platform","purl":"pkg:pypi/praisonai-platform","source":"PYSEC-2026-481"}],"prev":{"headline":"praisonai-platform: Issue endpoints accept any issue_id without workspace ownership check, cross-workspace read/update/delete IDOR","id":"CVE-2026-47415"},"products":["praisonai-platform"],"published":"2026-07-21","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"CC BY 4.0","name":"PyPA Advisory Database","prefix":"PYSEC"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"poc","technical_impact":"total"},"state":"PUBLISHED","updated":"2026-07-22","vendors":["MervinPraison"]},"summary":"Any workspace member can promote themselves or others to owner due to missing authorization checks in the member update endpoint.","url":"https://insights.sbomify.com/CVE-2026-47416/"}