← Voltar ao feed

Savane command injection in GNU Savannah allowed RCE, Bash maintainer impersonation and root access; FSF fixed 26 flaws

1 fonte(s) · 2 atualização(ões) · publicado 29/10/2026 21:00 · coletado há 2 horas

Matéria consolidada. Reúne 2 matérias que o Tifon tinha publicado separadamente sobre a mesma história. A IA reescreveu o relatório com o que a fonte trouxe em 05/11/2026 20:09; os links antigos trazem para cá.

Fontes: hacktron.ai ×2 ↗

Researchers at Hacktron disclosed a command injection flaw in Savane, the PHP forge software behind GNU Savannah (savannah.gnu.org and savannah.nongnu.org), which hosts Bash, Coreutils and hundreds of other GNU projects (hacktron.ai). Any registered user could set an email address containing shell metacharacters, and the "Test GPG keys" feature then passed it unsanitised to a shell. Hacktron chained this into web server RCE, superuser status in Savane, impersonation of Bash maintainer Chet Ramey, root access via an unpatched kernel, and access to a GNU backup host. The team confirmed it could add an SSH key granting push access to the upstream Bash Git repository but did not do so or modify the repository. They reported to the FSF on May 11, 2026. A broader audit then produced 26 confirmed vulnerabilities, all since fixed, and the FSF treated the incident as a full compromise and published a public incident report on August 7, 2026 (hacktron.ai). The sources do not report in-the-wild exploitation.

Entenda a falha

A vulnerabilidade

Savane 3.17-c369, the PHP forge behind GNU Savannah (savannah.gnu.org and savannah.nongnu.org), has a command injection flaw with no CVE assigned. Any registered user can set an email address with shell metacharacters and click "Test GPG keys" to run commands as the web server user. Hacktron chained it to superuser in Savane, impersonation of the Bash maintainer, and root through CVE-2023-2640 and CVE-2023-32629 (GameOver(lay), OverlayFS) on the 5.15 linux-libre kernel of Trisquel 11, fixed by USN-8255-1 on May 7, 2026. The code path came in with the March 7, 2026 release, so the window was about two months. The articles name no fixed Savane version, only that the FSF fixed everything. No in-the-wild exploitation is reported.

Como funciona

A user registers, or changes their account email, to an address the validator accepts even though it contains backticks, dollar signs and braces. On the GPG key page the user pastes a key and clicks "Test GPG keys". One check lists key fingerprints for the account's email, so the code builds a gpg command line and appends the stored email as plain text. That string goes to proc_open(), which runs it through /bin/sh. The shell evaluates the backticked part before gpg starts, so the commands run as the web server user.

Por que é vulnerável

Two problems combine. The email validator follows RFC dot-atom rules, which technically allow characters such as backticks, $, {}, / and |, but the code treats the address as safe. The GPG test code then concatenates it into a shell command string instead of passing arguments separately or escaping them. The validator rejects spaces, so ${IFS} stood in for them. The follow-on impact came from the web user reading database credentials, a superuser "Become this user" feature, and a kernel left unpatched for the OverlayFS bugs until May 7, 2026. The FSF fixed the authorization bugs through a refactor rather than individual patches.

Onde está

The email validator is in frontend/php/include/account.php (line 275), the email-change flow in frontend/php/my/admin/change.php (line 271), and the command is built in frontend/php/include/gpg.php (test_gpg_command and test_listing, with utils_run_proc calling proc_open).

Como foi descoberta

Hacktron researchers found it by pointing their AI-assisted tool at the Savane source code. They reported it to the FSF on May 11, 2026, and Savannah administrator Corwin Brust replied the same night. A follow-on audit of the codebase, which descends from 2001 SourceForge code, produced 33 findings: 7 were false positives and 26 were confirmed (2 critical, 6 high, 16 medium, 2 low). The other 25 were sent to the FSF with file paths, line numbers and reproduction steps. The researchers did not add an SSH key or touch the Bash repository. The FSF treated it as a full compromise, fixed everything and published an incident report on August 7, 2026. Hacktron's write-up came later.

PoC pública

Hacktron built a working chain against the live Savannah and documented it in its public write-up: email injection, reverse shell, superuser flag, impersonation of the Bash maintainer, then root. The write-up shows the injected address, code excerpts and screenshots, but no standalone exploit tool is said to be released. The root step used an already public GameOver(lay) exploit that worked on the first try. Savannah is fixed, but other Savane instances and unpatched 5.15 kernels remain exposed, so patching is urgent for them.

Publicada em: www.hacktron.ai/blog/gnu-savannah ↗

Explicação gerada por IA a partir da matéria e dos artigos, em 05/11/2026 20:24.

Detalhes técnicos

  • Root cause: the email validator (frontend/php/include/account.php:275) accepts dot-atom addresses containing backticks, $, {}, / and |. Example payload: 1a`touch${IFS}/tmp/savane-rce-proof`@attacker.example. ${IFS} replaces the spaces the validator rejects (hacktron.ai).
  • Injection point: the address can be set at registration or through the email-change flow (frontend/php/my/admin/change.php:271). In frontend/php/include/gpg.php, test_listing() appends the account email to the gpg options, and utils_run_proc() passes the string to proc_open(), which runs it via /bin/sh. The backtick command therefore runs as the web server user before gpg executes. Exploitation needs only the crafted email and a click on "Test GPG keys" (hacktron.ai).
  • Exposure window: the vulnerable code path was introduced in Savane release 3.17-c369 (March 7, 2026), affecting both Savannah instances for roughly two months (hacktron.ai).
  • Post-exploitation: the web server user could read the Savane config with database credentials. The researchers set the superuser flag on their own account and used the "Become this user" feature to impersonate Chet Ramey. The SSH key page controlling Git push access to bash.git accepted edits (hacktron.ai).
  • Privilege escalation: root was obtained with a public exploit for GameOver(lay) (CVE-2023-2640 and CVE-2023-32629, OverlayFS bugs) on the linux-libre 5.15 kernel of Trisquel GNU/Linux 11. The fix (USN-8255-1) shipped on May 7, 2026, four days before the report. The exploit worked on the first attempt (hacktron.ai).
  • Lateral movement: as root, the researchers found a key giving SSH access to a GNU backup host as the gnubackup user (hacktron.ai).
  • Wider audit: the Savane codebase descends from 2001-era SourceForge code. The follow-on audit, described as AI-assisted, produced 33 findings. After 7 false positives were discarded, 26 were confirmed (2 critical, 6 high, 16 medium, 2 low). They included authorization bypasses in site-wide admin group configuration, mailing list and tracker notification tampering, private file access via an unchecked file_uid parameter, and session hijacking. The text of the later source is truncated at that point (hacktron.ai).

Remediação

  • The FSF patched the kernel, audited access controls, databases and logs, and warned the operator of the other public Savane instance. The authorization bugs were fixed through a refactor rather than individual patches (hacktron.ai).
  • Operators of Savane instances should update to a fixed release and apply current kernel updates. Maintainers should review the SSH keys on their Savannah accounts (hacktron.ai).

Relatos divergentes

  • The earlier hacktron.ai piece says the May 11 report was "followed by 25 more findings (26 in total)". The later hacktron.ai piece describes a broader audit with 33 findings, 26 of them confirmed. Both arrive at 26, and the later piece is the more detailed and recent account of how that number was reached.

Linha do tempo

  1. hacktron.ai ↗ · pub. 29/10/2026 21:00 · coletado 05/11 19:00

    Researchers find RCE chain in GNU Savannah/Savane that could have backdoored Bash, Coreutils repos

    ler a análise desta fonte

    Security researchers at Hacktron used an AI-assisted audit to find a command injection flaw in Savane, the PHP application that runs GNU Savannah, the forge hosting Bash, Coreutils, and hundreds of other GNU projects. By registering an account with an email address containing shell metacharacters (backticks and ${IFS}) and triggering Savane's "Test GPG keys" feature, the researchers achieved remote code execution as the web server user. From there they escalated to superuser on the Savane application, impersonated Bash maintainer Chet Ramey via Savannah's "Become this user" feature, and confirmed they could add an SSH key granting push access to the upstream Bash Git repository, stopping short of actually modifying it. The team reported the issue to the FSF on May 11, 2026, then ran a broader audit that surfaced 26 confirmed vulnerabilities in total, all of which the FSF has since fixed and documented in a public incident report published August 7, 2026.

    Technical Details

    The root cause was in Savane's email validator (frontend/php/include/account.php:275), which accepts dot-atom email addresses containing characters such as backticks, $, {}, /, and | because they are technically permitted in the local part of an address under the relevant RFC. The "Test GPG keys" feature (frontend/php/include/gpg.php) appends the account's email address as plain text into a shell command string passed to proc_open(), which PHP executes through /bin/sh, letting backticked shell commands run before gpg itself executes. ${IFS} was used in place of a space because the validator rejects literal spaces. Exploitation required only registering or changing an account's email to the crafted payload and clicking "Test GPG keys." Once on the backend as the web server user, the researchers read database credentials from Savane's configuration, set the superuser flag on their own account, and used the "Become this user" superuser feature to act as Bash's maintainer. Privilege escalation to root was achieved via a public exploit for GameOver(lay), two 2023 OverlayFS kernel bugs (CVE-2023-2640 and CVE-2023-32629); Savannah ran Trisquel GNU/Linux 11 on a 5.15 LTS kernel that Canonical had not patched for these bugs until USN-8255-1 on May 7, 2026, four days before the report. With root, the researchers found SSH credentials granting access to a separate GNU backup host. The FSF traced the vulnerable code path back to the Savane 3.17-c369 release of March 7, 2026, affecting both savannah.gnu.org and savannah.nongnu.org for roughly two months. A follow-on audit of the Savane codebase, which descends from 2001-era SourceForge code, produced 33 findings, of which 26 were confirmed (2 critical, 6 high, 16 medium, 2 low), including authorization bypasses in site-wide admin group configuration, mailing list and tracker notification tampering, private file access via an unchecked file_uid parameter, session hijacking via URL-embedded SSO tokens, non-expiring password reset hashes, and stored XSS in the real name field.

    Remediation

    The FSF treated the finding as a full compromise: it installed the patched kernel, audited access controls, databases and logs, fixed the Savane vulnerabilities (the authorization bugs through a broader refactor rather than individual patches), warned the operator of the other public Savane instance, and published both a statement and a full incident report along with the Savane patches.

  2. hacktron.ai ↗ · pub. 29/10/2026 21:00 · coletado 29/10 19:00 primeiro registro

    Savane RCE on GNU Savannah via malicious email address allowed Bash maintainer impersonation and root access

    ler a análise desta fonte

    Researchers at Hacktron disclosed a command injection flaw in Savane, the PHP forge software behind GNU Savannah (savannah.gnu.org and savannah.nongnu.org). Any registered user could set an email address containing shell metacharacters, which was later passed unsanitised to a shell command by the "Test GPG keys" feature. Hacktron chained this into web server RCE, superuser status, impersonation of Bash maintainer Chet Ramey, and root access through an unpatched kernel, then reached a GNU backup host. The team confirmed it could add an SSH key granting push access to the upstream Bash repository, but did not do so or touch the repository. They reported it to the FSF on May 11, 2026, followed by 25 more findings (26 in total). The FSF treated the incident as a full compromise and fixed the issues. The article does not report in-the-wild exploitation.

    Technical Details

    • The email validator (frontend/php/include/account.php:275) accepts dot-atom addresses with backticks, $, {}, / and |. Example payload: 1a`touch${IFS}/tmp/savane-rce-proof`@attacker.example. ${IFS} replaces the spaces the validator rejects.
    • The address can be set at registration or through the email-change flow (frontend/php/my/admin/change.php:271).
    • In frontend/php/include/gpg.php, test_listing() appends the account email to the gpg options. utils_run_proc() passes the string to proc_open(), which runs it through /bin/sh, so the backtick command executes as the web server user.
    • The vulnerable path was introduced in Savane release 3.17-c369 (March 7, 2026), giving an exposure window of about two months.
    • The web server user could read the Savane config containing database credentials. The researchers set the superuser flag on their own account and used the "Become this user" feature to impersonate Chet Ramey (Bash maintainer). The SSH key page that controls Git push access to bash.git accepted edits.
    • Privilege escalation to root used GameOver(lay) (CVE-2023-2640 and CVE-2023-32629) on the unpatched linux-libre 5.15 kernel of Trisquel GNU/Linux 11. The fix for that kernel (USN-8255-1) shipped on May 7, 2026, four days before the report. A public exploit worked on the first attempt.
    • As root, the researchers found a key that gave SSH access to a GNU backup host as the gnubackup user.
    • Further Hacktron pentesting produced 33 findings. After discarding 7 false positives, 26 were reported (2 critical, 6 high, 16 medium, 2 low).

    Remediation

    • The FSF patched the kernel, audited access controls, databases and logs, and warned the operator of the other public Savane instance.
    • The authorization bugs were fixed through a refactor rather than individual patches.
    • Operators of Savane instances should update to a fixed release and apply current kernel updates. Maintainers should review SSH keys on their Savannah accounts.