nd4j sicherheitslücke ?

Nico1999

Aktives Mitglied
ich habe mir letztens nd4j über maven integriert, ich habe leider nicht so viel Ahnung von Maven.
Maven sagt jetzt bei der dependency, dass eine Sicherheitslücke vorliegt.
Was hat das zu bedeuten und wie kann ich das Problem beheben ?
""
Provides transitive vulnerable dependency maven:commons-net:commons-net:3.1
CVE-2021-37533 6.5 Improper Input Validation vulnerability with Medium severity found
Results powered by Checkmarx(c)
""
das ist die Warnung, ist die ernst zunehmen oder kann man die einfach ignorieren ?
 

M.L.

Top Contributor
Maven automatisiert Prozesse wie zum Beispiel das Herunterladen von Bibliotheken (inkl. Folgeabhängigkeiten). Die Warnmeldung deutet auf ein (potentielles) Sicherheitsproblem mit der genannten Bibliothek (oder Folgebibliotheken) hin. Eine Option wäre (z.B. in pom.xml) das Aktualisieren von https://commons.apache.org/proper/commons-net/ auf eine (wohl) sichere(re) Version (aktuell: 3.10 )
 

LimDul

Top Contributor
Das korrekte Vorgehen in einer Business-Anwendung wäre aus meiner Sicht:
Sicherheitslücke ansehen (Das geht per Google über die CVE): https://nvd.nist.gov/vuln/detail/CVE-2021-37533
Damit hat man erstmal mehr Infos als das, was maven ausspruckt

Bewerten, ob es einen betrifft.
Prior to Apache Commons Net 3.9.0, Net's FTP client trusts the host from PASV response by default. A malicious server can redirect the Commons Net code to use a different host, but the user has to connect to the malicious server in the first place.
Ich weiß jetzt nicht, was nd4j im Detail macht - aber man sieht hier es geht um den FTP Client. Wenn nix mit FTP gemacht wird, könnte man sie ignorieren.

Update der Bibliothek vornehmen
Wenn möglich, sollte man die Bibliothek aktualisieren. Abhängig von der Bewertung ob es einen betrifft (und dem Umfeld, in dem die Anwendung betrieben wird) ist die mehr oder weniger dringend. Hier kommt die Depenendecy transitiv rein, daher gibt es zwei Möglichkeiten:
  • Die Bibliothek, die die Dependecy transitiv mitbringt (nd4j) akualisieren auf eine Version, die die Dependency auf eine sichere Version anhebt.
  • Nur die betroffene Bibliothek selber aktualisieren

Beides hat Vor- und Nachteile. Bei der ersten Variante ist der Vorteil, das damit alle transitiven Dependency etc. aktualisiert werden. Gefahr ist hierbei aber, dass man deutlich mehr aktualisiert und schauen muss, ob alles läuft oder ob es Breaking Changes gab. Die zweite Variante ist weniger invasiv, hier muss man schauen, ob die aktualisierte Version kompatibel ist (was sie bei Minor Updates sein sollte). Und über die Zeit wächst die POM immer mehr an, weil man immer mehr Bibliotheken auf einmal selber auf Versionen fest-pinned, anstelle sie einfach transitiv zu beziehen.

Was wir in der Praxis in der Regel machen:
Abhängig von der Bewertung wird entschieden:
  • Hotfix in Produktion
  • Nächstes geplantes Minor-Release
  • Nächste geplantes Major Relase

Beim Hotfix wird nur die betroffene Bibliothek aktualisiert, sobald die Bibliothek, die die Dependecy transitiv mitbringt, aktualisiert wird (was nur in geplannten Releases gemacht wird), wird das festpinnen wieder aufgelöst.


Wenn es hier ein reines Hobby-Projekt ist, würde ich nach dem Blick auf die CVE sagen "I don't care"
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben