Perl port

Mardor

Well-Known Member
Hallo,

ich wollte heute tmux installieren. Beim installieren habe ich folgende Meldung erhalten

Code:
===>  perl5-5.20.3_14 has known vulnerabilities:
perl5-5.20.3_14 is vulnerable:
p5-XSLoader -- local arbitrary code execution
CVE: CVE-2016-6185
WWW: https://vuxml.FreeBSD.org/freebsd/3e08047f-5a6c-11e6-a6c3-14dae9d210b8.html

1 problem(s) in the installed packages found.
=> Please update your ports tree and try again.
=> Note: Vulnerable ports are marked as such even if there is no update available.
=> If you wish to ignore this vulnerability rebuild with 'make DISABLE_VULNERABILITIES=yes'
*** Error code 1

Laut https://forums.freebsd.org/threads/57213/ wäre wohl perl5.5.20 end of life. Nun bin ich mir nicht sicher was die korrekte Methode ist um tmux klar zu machen (wenn das überhaupt geht) nun die korrekte perl Version zu nehmen.

Oder sollte dies nicht automatisiert passieren ?

Gruß Mardor
 
Willst du ihn zwingen 5.20 zu nehmen/akzeptieren oder willst du eine aktuelle Perl-Version haben?
 
Hallo,

Willst du ihn zwingen 5.20 zu nehmen/akzeptieren oder willst du eine aktuelle Perl-Version haben?

Naja, soviel ich weis würde ich dafür in irgendeine Datei "'make DISABLE_VULNERABILITIES=yes" eintragen. Aber dann wäre ja das Security-Loch immer noch vorhanden.
Das andere Problem ist ja, dass ich gar nicht weis ob denn tmux mit der aktuellen Version noch arbeiten will. Was ist denn hier ein sinnvolles Vorgehen ?

Zum Skripten brauche ich aktuell kein perl, somit habe ich da da keine Favoriten.

Gruß Mardor
 
Hallo,

seit eben gibt es Perl 5.20.3_15 aber auch hier hat sich an dem eigentlichen Problem nix geändert.
Gruß Mardor
 
Das würde ich nicht machen, da sonst jeder Port mit Schwachstellen installiert wird.

Wenn du gerade bei bist, kannst du die alte Perl Version gegen die aktuelle ersetzen und beim installieren den Build Parameter setzen.

Zuerst in der make.conf:

Code:
DEFAULT_VERSIONS+=perl5=5.24

dann Perl updaten

Code:
portmaster -m DISABLE_VULNERABILITIES=yes -o lang/perl5.24 perl5.20

oder

Code:
cd /usr/ports/lang/perl5.24 && make DISABLE_VULNERABILITIES=yes && make install clean

und anschließend tmux installieren.

Perl 5.24 wurde am 13.08. auf 5.24.1.r3 gehoben, am Freitag war der Port jedoch noch verwundbar.
 
Hallo Binfort,

gehe ich richtig in der Annahme, dass "DEFAULT_VERSIONS+=perl5=5.24" eine globale Einstellung ist, ich diese aber für das eine tmux nicht benötige, wenn ich "
portmaster -m DISABLE_VULNERABILITIES=yes -o lang/perl5.24 perl5.20" benutze. Liege ich da richtig ?

Ich sehe eben das Problem, wenn diese globale Einstellung dazu führt, dass andere Programme auch mit dieser Version kompiliert werden und dann nicht zurecht kommen.
Oder sehe ich dies viel zu eng ?

Gruß Mardor
 
@Mardor der Eintrag in der make.conf ist hier beschrieben:
Code:
pkg updating -d 20150914 perl
20150914:
  AFFECTS: users of lang/perl5*
  AUTHOR: mat@FreeBSD.org

  Binary package users can ignore this.

  The way lang/perl5* ports install themselves has changed.  From now on, only
  the default Perl port (currently 5.20), or the version listed in
  DEFAULT_VERSIONS, will install /usr/local/bin/perl.

  If you are NOT using the default version of Perl (as of right now, it is
  5.20) you MUST add a line setting the version you are using to your
  /etc/make.conf, to preserve /usr/local/bin/perl:

  DEFAULT_VERSIONS+=    perl5=5.xx

  If your Perl package name is not called perl5-5.xx.y but perl5.xx-5.xx.y,
  you will need to rename it so that portupgrade and portmaster do not get
  confused:

    pkg set -n perl5.xx:perl5

  After this date, to migrate from one Perl version to the other, you must
  first put the DEFAULT_VERSIONS line in your make.conf, and then, for example,
  if you want to move from 5.20 to 5.22, do:

        pkg set -o lang/perl5.20:lang/perl5.22
        portmaster `pkg shlib -qR libperl.so.5.20`

  If you do not do that, you will replace your default Perl 5.20 installation
  (one that has /usr/local/bin/perl) with an installation that does not have
  /usr/local/bin/perl, and it will break everything.
Perl5.20 ist nach wie vor die Default Version. Der Port wurde heute Vormittag aktualisiert und sollte jetzt problemlos gebaut werden können. Perl wird bei mir fast immer nur als Abhängigkeit benötigt, von daher installiere ich bei Schwachstellen nach Möglichkeit die aktuellste Version in der Hoffnung, dass diese am ehesten aktualisiert werden.

Irgendwann muss ich ja eh wechseln.

Um deine Frage zu beantworten, nach dem Update auf 5.24 müssten alle Abhängigkeiten erneut installiert bzw. mit pkg set behandelt werden. Ich bevorzuge die Neuinstallation.
 
Danke für den Hinweis.

Ich habe jetzt in der /etc.make.conf folgendes eingetragen:
Code:
 DEFAULT_VERSIONS+=    perl5=5.24

Danach mit portsnap fetch update und portmaster -a meine ports aktualisieren wollen, bekomme jedoch folgende Fehlermeldung:

Code:
===>>> All >> perl5-5.20.3_13 (1/1)

===>  Cleaning for perl5.20-5.20.3_15
##################################################

      This is *NOT* the DEFAULT perl version

It will *NOT* install /usr/local/bin/perl

It will *ONLY* install /usr/local/bin/perl5.20.3

The default Perl version currently is 5.24.

If you want to use this version as the default,
stop the build now, add this line to your
/etc/make.conf, and then restart the build.

DEFAULT_VERSIONS+=perl5=5.20

##################################################
===>  perl5.20-5.20.3_15 has known vulnerabilities:
perl5.20-5.20.3_15 is vulnerable:
p5-XSLoader -- local arbitrary code execution
CVE: CVE-2016-6185
WWW: https://vuxml.FreeBSD.org/freebsd/3e08047f-5a6c-11e6-a6c3-14dae9d210b8.html

1 problem(s) in the installed packages found.
=> Please update your ports tree and try again.
=> Note: Vulnerable ports are marked as such even if there is no update available.
=> If you wish to ignore this vulnerability rebuild with 'make DISABLE_VULNERABILITIES=yes'
*** Error code 1

Ich gehe davon aus, dass ich es daran liegt das FreeBSD nicht versucht tmux neu zu kompilieren, sondern versucht perl zu aktualisieren. Ich habe im nächsten Schritt gesucht welche Ports noch das "alte" perl benutzen aber ich bin mir nicht sicher wie ich das anzeigen lassen kann

Code:
 pkg check --dependencies perl5.20
Checking perl5.20: 100%

[41] 16.08.2016 8:03 root@abc /usr/ports: make build-depends-list
make: don't know how to make build-depends-list. Stop

make: stopped in /usr/ports

Gehe ich richtig in der Annahme das ich als erstes rausfinden muss welche Programme mit dem "alten" perl kompliliert wurden und dann einfach den Port mit portmaster xyz/port aktualisieren ?

Gruß Mardor
 
Hallo,

seit eben gibt es Perl 5.20.3_15 aber auch hier hat sich an dem eigentlichen Problem nix geändert.
Gruß Mardor
5.20.3_15 wurde wohl nochmal geändert (ohne eine neue Versionsnummer zu vergeben), denn nun baut es hier, obwohl es urpsprünglich nicht gebaut hatte. Allerdings finde ich keinen Eintrag unter http://www.freshports.org/lang/perl5.20 Egal, jetzt läuft es wieder.

Gruß

Nachtrag: "Lustig"... Auf dem Host selbst baut perl. In einer Jail, die per nullfs-mount den Portstree (readonly) vom Host nutzt, baut perl nicht.
 
Bei mir baut er nichts, trotz dem gerade eben ausgeführten: portsnap fetch update, portmaster -a
Code:
===>>> Proceed? y/n [y]


===>>> Starting build for ports that need updating <<<===

===>>> Launching child to install lang/perl5.20

===>>> All >> lang/perl5.20 (1/1)

===>>> Currently installed version: perl5-5.20.3_13
===>>> Port directory: /usr/ports/lang/perl5.20

===>>> Starting check for build dependencies
===>>> Gathering dependency list for lang/perl5.20 from ports
===>>> Dependency check complete for lang/perl5.20

===>>> All >> perl5-5.20.3_13 (1/1)

===>  Cleaning for perl5-5.20.3_15
===>  perl5-5.20.3_15 has known vulnerabilities:
perl5-5.20.3_15 is vulnerable:
p5-XSLoader -- local arbitrary code execution
CVE: CVE-2016-6185
WWW: https://vuxml.FreeBSD.org/freebsd/3e08047f-5a6c-11e6-a6c3-14dae9d210b8.html

1 problem(s) in the installed packages found.
=> Please update your ports tree and try again.
=> Note: Vulnerable ports are marked as such even if there is no update available.
=> If you wish to ignore this vulnerability rebuild with 'make DISABLE_VULNERABILITIES=yes'
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/lang/perl5.20
*** Error code 1

Stop.
make: stopped in /usr/ports/lang/perl5.20

===>>> make build failed for lang/perl5.20
===>>> Aborting update

===>>> Update for lang/perl5.20 failed
===>>> Aborting update


===>>> You can restart from the point of failure with this command line:
       portmaster <flags> lang/perl5.20

Gruß Mardor

Nachtrag: Ich habe dafür den Eintrag in der /etc/make.conf wieder rausgenommen. Das zuvor beschriebene Problem bleibt aber immer noch.
 
Hallo,

also die Frage wie ich mir die Abhängigkeiten anschauen kann habe ich mir beantwortet:

Code:
 portmaster --list-origins | xargs -n 1 portmaster --show-work > /root/dependencies

Die anderen Fragen 3 Posts zuvor habe ich leider noch nicht rausbekommen.
 
Müssten die Abhängigkeiten nicht auch wie in UPDATING beschrieben mit pkg shlib -qR libperl.so.5.20 angezeigt werden? Natürlich nur wenn Perl bereits installiert ist...

Btw, falls Perl5.20 bei dir schon drauf ist und du via portmaster tmux installierst, aktualisiert portmaster alle Abhängigkeiten von tmux. Wenn du den Port manuell installierst, sollte der ihn doch eig gegen die vorhandene Perl Version kompilieren. Versuch mal cd /usr/ports/sysutils/tmux && make && make install clean, klappt das?

Oder du aktualisierst/installierst zuerst Perl mit "DISABLE_VULNERABILITIES=yes" (weil der Port wohl weiterhin verwundbar ist?!?). Mein Gedanke auf 5.24 zu aktualisieren kam, weil 5.24 am We ein Update bekam und iwann muss es ja sowieso passieren ;-)

Wenn du nach dem Update tmux mit portmaster installierst, kannst du mit "-i" entscheiden welche Ports aktualisiert werden sollen. Oder du erstellst temporär eine touch /var/db/pkg/perl5-<deine_perl_version>/+IGNOREME welche du nach der tmux Installation löschst.
 
Hallo sebast,

danke für die Information. Sehr interessant. Vor allem existiert unter man pkg kein Hinweis auf die Option "-F".

Auch wenn die Sicherheitslücke beseitigt wurde, wird es wahrscheinlich über kurz oder lang (eher kurz) notwendig sein perl5-5.24 zu nutzen.
Ich weis nicht ob FreeBSD hier eine Methode benutzen wird um dies generell zu realisieren, oder ob es tatsächlich notwendig sein wird mit "
DEFAULT_VERSIONS+" zu arbeiten.

Wie war denn dies bei FreeBSD in der Vergangenheit mit vergleichbaren Situationen ?

Gruß Mardor
 
Sehr interessant. Vor allem existiert unter man pkg kein Hinweis auf die Option "-F".
Die man Page von pkg ist aufgeteilt nach den verschiedenen Kommandos. Um die Optionen von "pkg audit" zu bekommen musst Du "man pkg-audit" aufrufen. Und dort findest Du dann u.a.
Code:
  -F, --fetch
  Fetch the database before checking.
 
Moin @Mardor,

lass dich von DEFAULT_VERSIONS nicht irritieren. Du brauchst es nicht setzen, wenn du immer die default Version von Perl benutzt und das wird iwann 5.22 sein.

Wenn es soweit ist, steht in UPDATING was zu tun ist. IdR kannst du beim Aktualisieren entweder die alten Perl Bibliotheken behalten oder alle Abhängigkeiten neu kompilieren. Ich bevorzuge letzteres.
 
Hallo,

eine fast schon Off-Topic aber wie geht Ihr mit der Updating Information um.

Wann lest Ihr die Info ? Erst bei einer Fehlermeldung beim kompilieren oder immer vor dem Update ?
Wenn Antwort zwei, wie findet Ihr schnell heraus was für euch zutrifft ?

Gruß Mardor
 
Zurück
Oben