Update: Mögliche Ausnutzung eines Pufferüberlaufs bei erweiterten gespeicherten Prozeduren

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 280380 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde zuvor veröffentlicht unter D44151
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
280380 FIX: Buffer Overflow Exploit Possible With Extended Stored Proce
Alles erweitern | Alles schließen

Problembeschreibung

In einigen der erweiterten gespeicherten Prozeduren (stored procedures), die im Lieferumfang von SQL Server enthalten sind, besteht eine Schwachstelle, die es unter Umständen gestattet, dass ein in einem Stapel reservierter Speicherpuffer mit willkürlichen Daten überschrieben wird. Dies könnte es einem Angreifer erlauben, im Prozessspeicher von SQL Server willkürlichen Code auszuführen. Dieser willkürliche Code könnte zu unterschiedlichen Zwecken eingesetzt werden, zum Beispiel um einfach nur den Server herunterzufahren, oder aber auch um einen anderen Prozess zu erzeugen, mit dessen Hilfe man die Kontrolle über den Server erlangen könnte.

Ursache

Die Funktion "srv_parainfo" wird dazu verwendet, Daten, die vom aufrufenden Prozess ("caller") übergeben wurden, in einen Speicherpuffer zu kopieren, der von der erweiterten gespeicherten Prozedur (dem aufgerufenen Prozess, "callee") reserviert wurde. Wenn der aufgerufene Prozess diesen Speicher im Stack reserviert hat, und wenn die an die gespeicherte Prozedur übergebenen Daten länger als dieser reservierte Speicher sind, werden die verbleibenden Daten möglicherweise über den Stack kopiert; dies könnte zu einem Überschreiben der Rückgabeadresse führen, die beim Zurückgeben der Funktion ausgeführt wird. Indem man sorgfältig einen Puffer mit den richtigen Informationen konstruiert, können willkürliche Anweisungen im Speicher des Servers abgelegt und ausgeführt werden.

Lösung

Ein Update zur Behebung dieses Problems ist inzwischen von Microsoft erhältlich. Wenn Sie Microsoft SQL Server 7.0 verwenden, muss vor Anwendung des Updates bereits Service Pack 2 installiert worden sein.

Anmerkung: Aufgrund von Dateiabhängigkeiten enthält das aktuellste Update oder Feature, das die oben genannten Dateien enthält, möglicherweise auch weitere Dateien.

Zur Installation des Updates notwendige Schritte
Um diese Berichtigung zu installieren, müssen Sie folgende Schritte durchführen:
  1. Lesen Sie das Microsoft Security Bulletin MS00-092, das sich auf folgender Website befindet:
       http://www.microsoft.com/technet/security/bulletin/ms00-092.mspx
  2. Laden Sie den Patch von folgender Website herunter; wählen Sie dabei die Datei, die Ihrer SQL Server-Version, Ihrer Prozessorarchitektur und Ihrer Sprache entspricht.
       XP Security Downloads
        http://www.microsoft.com/technet/security/bulletin/ms02-043.mspx
  3. Führen Sie die von Ihnen heruntergeladene selbstextrahierende ausführbare Datei aus, um die Dateien zu extrahieren. Während des Extrahierungsvorganges werden Sie aufgefordert, ein Zielverzeichnis für die Dateien anzugeben. Wählen Sie ein leeres temporäres Verzeichnis, in das die Dateien extrahiert werden sollen.
Anmerkung: Sowohl die Alpha- als auch die x86-Version des Patchs müssen auf einem x86-basierten Computer extrahiert werden.
  1. Der Patch beinhaltet eine Readme.txt-Datei, die detaillierte Installationsanweisungen für dieses spezielle Dateipaket enthält. Folgen Sie diesen Anweisungen, um Ihr System mit diesen Dateien zu aktualisieren.

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den Microsoft-Produkten handelt, die zu Beginn dieses Artikels aufgeführt sind.

Weitere Informationen

Zu den von diesem Problem betroffenen erweiterten gespeicherten Prozeduren zählen:

Auf SQL Server 7.0 und SQL Server 2000:
  • xp_sqlagent_monitor
  • xp_sqlinventory
Auf SQL Server 2000:
  • sp_OACreate
  • sp_OAMethod
  • sp_OAGetProperty
  • sp_OASetProperty
  • sp_OADestroy
Dieses Update beseitigt diese Sicherheitsanfälligkeit in allen erweiterten gespeicherten Prozeduren, die von Microsoft mitgeliefert werden. Sind andere erweiterte gespeicherte Prozeduren von Drittherstellern auf dem Computer installiert, ist es unter Umständen möglich, diese Sicherheitsanfälligkeit mithilfe einer dieser Prozeduren auszunutzen. Hierzu muss die Prozedur das Open Data Services-API srv_paraminfo verwenden. Wenn auf Ihrem Computer erweiterte gespeicherte Prozeduren eines Drittherstellers installiert sind, wenden Sie sich an diesen Hersteller um herauszufinden, ob diese Prozeduren von dieser Sicherheitsanfälligkeit betroffen sind.

Diese Sicherheitsanfälligkeit macht sich einen Puffer zunutze, der für die weiterzugebenden Daten zu klein ist. Wenn Sie die Länge der Daten, die weitergegeben werden, korrekt ermitteln wollen, müssen Sie zuerst srv_paraminfo mit dem sechsten Parameter als NULL aufrufen. Damit übergibt die Funktion die tatsächliche Länge der Parameterdaten. Es kann ein Puffer in der entsprechenden Größe reserviert werden, und über einen zweiten Aufruf können die Daten abgerufen werden. Die Funktion srv_paraminfo erlaubt es nicht, eine maximale Datenlänge festzulegen, die in Ihren Puffer kopiert werden kann. Weitere Informationen finden Sie unter dem Thema "srv_paraminfo" in der Onlinedokumentation zu SQL Server.

Weitere Suchbegriffe: ods xproc Pufferüberlauf memory leak

Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.

Eigenschaften

Artikel-ID: 280380 - Geändert am: Mittwoch, 5. September 2007 - Version: 3.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 7.0 Service Pack 1
  • Microsoft SQL Server 7.0 Service Pack 2
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft Data Engine 1.0
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
Keywords: 
kbsqlserv700bug KB280380
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com