{"answers":{"affected":"","exploited":"There is no known exploitation of CVE-2026-100713 in the wild and no public exploit code.","fix":"No fix has been published for CVE-2026-100713 yet. Limit exposure of the affected software until one is available.","what":"CVE-2026-100713 is a high-severity vulnerability in froxlor, published on 26 Sep 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-100713 and fix it if it is affected.\n\nWhat it is: CVE-2026-100713 is a high-severity vulnerability in froxlor, published on 26 Sep 2026. Any signed-in user can exploit it over the network, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-100713 in the wild and no public exploit code.\n\nAffected product: froxlor. No package-level version data is available, so check the vendor advisory linked from the reference page.\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-100713/ (Markdown: https://insights.sbomify.com/CVE-2026-100713/index.md)","id":"CVE-2026-100713","markdown":"https://insights.sbomify.com/CVE-2026-100713/index.md","name":"CVE-2026-100713","record":{"aliases":["GHSA-927x-9jfh-mq42","GHSA-cvg5-3xjx-32m5"],"analysis":{"component_type":"web_application","fix_type":"upgrade","impacts":["privilege_escalation","code_execution"],"network_reachable":"yes","non_default_config":true,"product_category":"Froxlor hosting panel","requires_auth":"low_privilege","summary":"A race condition in Froxlor's SSH key sync allows local users to escalate privileges to root if customer shell access is enabled.","user_interaction":"not_required","vuln_class":"race_condition"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"VulnCheck","cpe":[],"cvss":{"score":7.1,"severity":"high","source":"cna","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","version":"4.0"},"cwes":[{"id":"CWE-367","name":"Time-of-check Time-of-use (TOCTOU) Race Condition"}],"description":"Froxlor 2.3.10 and earlier contain a time-of-check time-of-use (TOCTOU) race condition in the SSH key synchronization cron (lib/Froxlor/Cron/System/SshKeys.php, SshKeys::generateFiles). The containment/symlink validation performed by FileDir::makeCorrectDir()/makeCorrectFile() is done only at check time; the live filesystem path is re-resolved as root at write time (file_put_contents with FILE_APPEND|LOCK_EX, followed by chmod/chown/chgrp), with a database round-trip and file reads in between, and no path or file-descriptor pinning (no O_NOFOLLOW or openat2(RESOLVE_NO_SYMLINKS)). On installations where the non-default setting system.allow_customer_shell=1 grants customers local shell access, a customer can atomically swap their ~/.ssh directory for a symlink after the check and before the write, causing the root-run cron to append the customer's public key to /root/.ssh/authorized_keys and to chown /root/.ssh to the customer, resulting in full root compromise of the panel host. The cron re-runs on every interval, allowing unlimited attempts. This is a residual race that bypasses the check-time fix introduced for GHSA-mq5v-... . The issue is fixed in Froxlor 2.3.12.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":false,"headline":"Froxlor before 2.3.12 Privilege Escalation via SSH Key Sync","id":"CVE-2026-100713","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":"race_condition","year":"2026"},"n_packages":0,"n_references":2,"next":{"headline":"Froxlor before 2.3.12 Command Injection via letsencryptchallengepath","id":"CVE-2026-100714"},"packages":[],"prev":{"headline":"froxlor before 2.3.12 Two-Factor Authentication Bypass via CSRF","id":"CVE-2026-100712"},"products":["froxlor"],"published":"2026-09-26","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"total"},"state":"PUBLISHED","updated":"2026-09-26","vendors":["froxlor"]},"summary":"A race condition in Froxlor's SSH key sync allows local users to escalate privileges to root if customer shell access is enabled.","url":"https://insights.sbomify.com/CVE-2026-100713/"}