bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gnulib's build-to-host.m4 and its role in the recent xz backdoor


From: Bruno Haible
Subject: Re: gnulib's build-to-host.m4 and its role in the recent xz backdoor
Date: Sat, 30 Mar 2024 22:34:09 +0100

Collin Funk wrote:
> This file was .gitignore'd and only contained in the distributed
> tarballs. Given the rest of the situation, the goal was obviously to
> hide this as much as possible. It is annoying that they choose to hide
> it among real, useful Gnulib code.

It was pretty logical that Jia Tin used this .m4 files for hiding the
trigger:

  * Because "The malicious injection ... is obfuscated and only included
    in full in the download package - the Git distribution lacks the M4
    macro that triggers the build of the malicious code" [1] it was normal
    for him to look for a file that is not present in Git but present in
    the tarballs. Which files are this? Mainly
      - *.m4 files,
      - some build-aux/ files,
      - some *.c files (not here: they committed all .c files into git).

  * For the purposes of hiding and concealing malware, it is useful to
    pick a file whose programming language few people understand.
    *.m4 - perfect match! Better than a *.c file.

  * build-to-host.m4 in particular is deterring, due to its uses of [$1]
    and backslashes. Most people who look at this for one second immediately
    leave. Which also fits the goal.

When criminals proceed in a planned way, they abuse whatever is most
suited to their goals. In this case it was a .m4 file that I had created
a couple of days earlier. There is nothing we can do about it. We cannot
say "Let's stop writing *.m4 files, because criminals could abuse them".
It would be as silly as saying "Let's stop building roads for car traffic,
because criminals could abuse them for fleeing from a crime scene".

Bruno

[1] https://www.phoronix.com/news/XZ-CVE-2024-3094






reply via email to

[Prev in Thread] Current Thread [Next in Thread]