www.fabiankeil.de/blog-surrogat/2021/02/28/firefox-uname-leck.html

Firefox-uname-Leck unter ElectroBSD

Schon vor einiger Zeit ist mir aufgefallen, dass Mozilla Firefox manchmal im User-Agent verrät, dass ich ElectroBSD einsetze.

Da es nicht so viele ElectroBSD-Nutzer gibt, ist das nicht ideal.

Eigentlich sollte es auch nicht passieren, schließlich starte ich Firefox mit dem folgenden Skript:

fk@t520 ~ $cat ~/scripts/firefox 
#!/bin/sh

# After modifying, remember to update the version for the liferea account too
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
UNAME_s=FreeBSD

exec sudo -i -u firefox \
     env PATH="${PATH}" UNAME_s="${UNAME_s}" /usr/local/bin/firefox "${@}"

Wenn Firefox also die uname-Funktion aufruft wird FreeBSD zurück gemeldet. In der Vergangenheit hat das – soweit mir bekannt – auch zuverlässig funktioniert.

Zuerst ist mir das Leck in einer Anfrage aufgefallen, mit der Firefox versucht hat, nach Hause zu telefonieren. Da ich derartige Anfragen mit Privoxy unterbinde fand ich das Verhalten zwar merkwürdig, habe es aber erst mal nicht weiter verfolgt.

Seit mindestens ein paar Tagen scheint Firefox allerdings häufiger zu lecken, gestern sah die Firefox-User-Agent-Verteilung noch so aus:

fk@t520 ~ $grep 'scan: User-Agent: Mozilla/5.0' /usr/jails/privoxy-jail/var/log/privoxy/privoxy.log.0 | grep 'Firefox/78.0$' | sed -E -e 's@^.*Header: scan: @@' | sort | uniq -c
 822 User-Agent: Mozilla/5.0 (X11; ElectroBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0
3924 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0

Heute scheint Firefox durchgehend zu lecken:

fk@t520 ~ $grep 'scan: User-Agent: Mozilla/5.0' /usr/jails/privoxy-jail/var/log/privoxy/privoxy.log | grep 'Firefox/78.0$' | sed -E -e 's@^.*Header: scan: @@' | sort | uniq -c
3094 User-Agent: Mozilla/5.0 (X11; ElectroBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0

An der verwendeten Software habe ich nichts geändert. Auch in der Binärdatei wird ElectroBSD nicht erwähnt:

fk@t520 ~ $strings /usr/local/lib/firefox/firefox | grep BSD
FreeBSD
FreeBSD
FBSD_1.0
FBSD_1.1
FBSD_1.2

Mit der uname-Funktion scheint es keine offensichtliche Probleme zu geben:

fk@t520 ~ $export UNAME_s=FreeBSD
fk@t520 ~ $for i in $(jot 1000); do uname; done | sort | uniq -c
1000 FreeBSD

Auch mit Liferea gibt es kein Leck:

fk@t520 ~ $grep 'scan: User-Agent: Mozilla/5.0' /usr/jails/privoxy-jail/var/log/privoxy/privoxy.log | grep 'Liferea' | sed -E -e 's@^.*Header: scan: @@' | sort | uniq -c
 121 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15 Liferea/1.12.7

Natürlich verwende ich uagen und der von Firefox gesendete User-Agent wird Dank HTTPS-Inspektion auch in verschlüsselten Anfragen ersetzt, aber das Firefox-Verhalten ist nicht gerade vertrauenerweckend.

Update 2021-03-02

Seit heute ist Firefox wieder mit FreeBSD-User-Agent unterwegs ...

Die Verteilung in den Logs:

fk@t520 ~ $today
2021-03-02
fk@t520 ~ $grep 'scan: User-Agent: Mozilla/5.0' /usr/jails/privoxy-jail/var/log/privoxy/privoxy.log | grep 'Firefox/78.0$' | sed -E -e 's@^.*Header: scan: @@' | sort | uniq -c
2856 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0
fk@t520 ~ $grep 'scan: User-Agent: Mozilla/5.0' /usr/jails/privoxy-jail/var/log/privoxy/privoxy.log.0 | grep 'Firefox/78.0$' | sed -E -e 's@^.*Header: scan: @@' | sort | uniq -c
2612 User-Agent: Mozilla/5.0 (X11; ElectroBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0
fk@t520 ~ $grep 'scan: User-Agent: Mozilla/5.0' /usr/jails/privoxy-jail/var/log/privoxy/privoxy.log.1 | grep 'Firefox/78.0$' | sed -E -e 's@^.*Header: scan: @@' | sort | uniq -c
3419 User-Agent: Mozilla/5.0 (X11; ElectroBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0
fk@t520 ~ $grep 'scan: User-Agent: Mozilla/5.0' /usr/jails/privoxy-jail/var/log/privoxy/privoxy.log.2 | grep 'Firefox/78.0$' | sed -E -e 's@^.*Header: scan: @@' | sort | uniq -c
 822 User-Agent: Mozilla/5.0 (X11; ElectroBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0
3924 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:78.0) Gecko/20100101 Firefox/78.0