[Security] Patch 003: sysvsem für OpenBSD

CW

Netswimmer
Es gibt einen neuen Security-Fix für OpenBSD 3.3

Hier der Auszug von http://www.deadly.org:


It is possible for root to raise the value of the seminfo.semmns and seminfo.semmsl sysctls to values sufficiently high such that an integer overflow occurs. This can allow root to write to kernel memory irrespective of the security level. The default security level on OpenBSD is 1 ("secure mode") which does not allow writing to /dev/mem and /dev/kmem. It may be possible for a root user to exploit this bug to reduce the security level itself.

The impact of this bug is quite low for most systems since it is only useful to an attacker who already has root on the local system with the expertise to modify the running kernel.

The problem has been fixed in the OpenBSD 3.3-stable branch. In addition, a patch is available for OpenBSD 3.3



Hier der LInk zum Patch: ftp://ftp.openbsd.org/pub/OpenBSD/patches/3.3/common/003_sysvsem.patch

CW
 
Hi all,

Zwei Fragen:

OS = OBSD 3.3

1. Funktioniert das Patchen auch so:
# sh script

------script
#!/usr/local/bin/bash
export CVSROOT=url...
cd /usr/src
cvs -q up -rOPENBSD_3_3 -Pd
------/script

# Kernel neu kompilieren...?

2. Wie kann ich überprüfen, ob das System gepatcht ist?
Gibt es irgendeine Möglichkeit das zu "testen", ohne
einen Exploit anzuwenden, oder muss man immer in
den Kernelsourcen schauen, ob die entsprechenden
Dateien geändert wurden?

TIA,
lars.
 
Original geschrieben von lars
Hi all,

Zwei Fragen:

OS = OBSD 3.3

1. Funktioniert das Patchen auch so:
# sh script

------script
#!/usr/local/bin/bash
export CVSROOT=url...
cd /usr/src
cvs -q up -rOPENBSD_3_3 -Pd
------/script


Wenn du regelmäßig dein Source-Baum updatest und Kernel/System neu baust, dann bekommst du natürlich auch die "Patches" mit.

Diese Patches sind auch ein Bestandteil der Entwicklung von OpenBSD (und anderer Systeme auch).

Die andere Möglichkeit ist es halt mit dem Befehl patch die jeweiligen diffs in den Quellcode einzeln reinzusetzen. Damit hast du die Lücken weg, jedoch die übrige Entwicklung (Treiber, verbesserter Code eim Allgemeinen usw.) wird natürlich nicht reingeholt.

# Kernel neu kompilieren...?

Wie ich schon sagte, wenn du alles updatest und kompilierst, dann hast du auch die Patches mit on board. :)

2. Wie kann ich überprüfen, ob das System gepatcht ist?

Hmmm ... gute Frage ... die habe ich mir noch nicht gestellt.

Eine Möglichkeit wäre es natürlich zu überprüfen, ob die diffs in dem betreffenden Code drin sind.

Es wäre auch möglich per CVS (oder CVSup) festzustellen, wo die Unterschieden liegen.

Bestimmt gibt es da Optionen, die anzeigen, wo die diffs zu setzen sind.

Und natürlich gibt es noch den CVS-Baum auf der OpenBSD-Website, den du mit deinem vergleichen könntest.

Gibt es irgendeine Möglichkeit das zu "testen", ohne
einen Exploit anzuwenden, oder muss man immer in
den Kernelsourcen schauen, ob die entsprechenden
Dateien geändert wurden?

Exploits gibt es auch und wird es auch immer geben.

Wenn du meine persönliche Antwort haben willst, so würde ich meinen Codebaum mit dem aktuellen bei OpenBSD vergleichen.

Das ist das Maß aller OpenBSD-Dinge :)

Gruß

CW
 
Zuletzt bearbeitet:
Danke für deine schnelle Antworten ;-)

Ich habe mich einfach gefragt, ob es eine Möglichkeit gäbe
zu testen, ob das System gepatcht ist, ohne die gleiche Methode anzuwenden, mit der der Patch angebracht wird.

"Out of Band" sozusagen.

Bei den OS von M$ sagt zwar das Patch.exe es habe sich erfolgreich installiert, aber man kann auch die Existenz neuer Registry-Keys und/oder DLLs, resp. DLLs mit neuem Datum
überprüfen, und daraus schliessen, das System sei jetzt up to date.

Ist bei OBSD, jetzt wo ich es mir überlege, auch nicht viel
anders.
patch vs. diff, resp. Auge
openbsd.org-Kernelsource-eigener Kernelsource.

Ist schlussendlich wohl eher eine philosophische Frage des Vertrauens, die in meinem Falle schnell beantwortet ist.

THX,
lars.
 
Wenn Du Deinen Kernel via CVS updates kannst Du mit
Code:
sysctl kern.version
erkennen das es ein Kernel aus dem -stable Branch ist, welcher wie CW schon sagt, immer up-to-date ist.

Wenn Du ein normales Release mit von Hand eingespielten Patches einsetzt, wuesste ich auch nichts anderes als diff drueber zu buegeln. Evtl. koennte man anhand des Kernel-Baudatums erahnen ob ein Kernel gepatcht ist.
 
Zurück
Oben