Liste von Programmfehlerbeispielen
# Liste von Programmfehlerbeispielen

Die Liste von Programmfehlerbeispielen zeigt einige medial betrachtete Beispiele von Programmfehlern, ist nach Branchen (Anwendergruppen) geordnet und beschreibt deren Folgen.

## Luft- und Raumfahrt

* Beim Kampfflugzeug F-16 brachte der Autopilot das Flugzeug in Rückenlage, wenn der Äquator überflogen wurde. Dies kam daher, dass man keine „negativen“ Breitengrade als Eingabedaten bedacht hatte. Dieser Fehler wurde sehr spät während der Entwicklung der F-16 mithilfe eines Simulators entdeckt und beseitigt.
* Am 4. Juni 1996 sprengte sich die erste Ariane-5-Rakete (Startnummer V88) der Europäischen Raumfahrtbehörde 40 Sekunden nach dem Start in vier Kilometern Höhe automatisch. Der Programmcode für (unter anderem) die Vorstart-Ausrichtung war von der Ariane 4 übernommen worden, lief unnötigerweise auch nach dem Start weiter und funktioniert dabei nur in einem von der Ariane 4 nicht überschreitbaren Bereich der Horizontalgeschwindigkeit. Als dieser Bereich von der Ariane 5 verlassen wurde, da sie höhere Horizontalgeschwindigkeiten erreicht als die Ariane 4, schlug der Fehler auf die Trägheits-Steuersysteme durch und diese schalteten sich weitgehend ab. Bei der Programmierung war es zu einem Fehler bei der Typumwandlung gekommen. Als von Float nach Integer umgewandelt wurde und der Wert 32.768 erreichte, entstand ein Überlauf. Dieser Überlauf hätte durch die verwendete Programmiersprache Ada eigentlich entdeckt und behandelt werden können. Diese Sicherheitsfunktionalität ließen die Verantwortlichen jedoch abschalten. Der Schaden betrug etwa 370 Millionen US-Dollar.
* 1999 verpasste die NASA-Sonde Mars Climate Orbiter den Landeanflug auf den Mars, weil die Programmierer unterschiedliche Maßsysteme verwendeten (ein Team verwendete das metrische und das andere das angloamerikanische) und beim Datenaustausch es so zu falschen Berechnungen kam. Eine Software wurde so programmiert, dass sie sich nicht an die vereinbarte Schnittstelle hielt, in der die metrische Einheit Newton × Sekunde festgelegt war. Die NASA verlor dadurch die Sonde.
* Beim Start der als Nachfolger der Delta 2 geplanten neuen Delta-3-Rakete 1998 geriet diese 75 Sekunden nach dem Start in Schräglage zur Flugrichtung und musste gesprengt werden. Die Steuersoftware war aus der Delta 2 übernommen worden, was aber zu einer falschen Interpretation bezüglich einer 4-Hz-Eigenschwingung in Rollrichtung innerhalb der hydraulischen Steuersysteme der Booster-Raketen führte.
* Das mehrere hundert Millionen Euro teure Weltraumteleskop Hitomi geriet Ende März 2016 nach einer Verkettung von Softwarefehlern in zu schnelle Rotation und ging verloren. Die Software war fälschlicherweise von einer unerwünschten langsamen Rotation des Satelliten ausgegangen und versuchte, die scheinbare Drehung durch Gegenmaßnahmen zu kompensieren. Die Signale der redundanten Kontrollsysteme wurden falsch gedeutet, und schließlich wurde der Satellit immer stärker in Rotation versetzt, bis er wegen der zu groß werdenden Fliehkräfte schließlich zerbrach.

## Medizin

* Zwischen 1985 und 1987 gab es mehrere Unfälle mit dem medizinischen Bestrahlungsgerät Therac-25. Infolge einer Überdosis, die durch fehlerhafte Programmierung und fehlende Sicherungsmaßnahmen verursacht wurde, mussten Organe entfernt werden, und es verstarben drei Patienten.

## Handel

* Im Dezember 2014 arbeitete eine Software „fehlerhaft“, die Produktpreise abhängig vom Preis bei der Konkurrenz automatisch festlegt. Auf dem Marktplatz des Online-Versandhändlers Amazon wurden die Verkaufspreise vieler Händler für Hunderte Produkte auf 0,01 Englische Pfund gesetzt. Einigen Anbietern drohten mehrere Zehntausend Pfund Verlust, mitunter befürchteten einige, die Panne könne sie in den Konkurs treiben.

## Verkehr

* Am 12. März 1995 kam es wegen eines um wenige Byte zu klein bemessenen Stapelspeichers in der Software eines Hamburger Stellwerks, bei dem auch das Ersatzsystem aus Sicherheitsgründen abgeschaltet wurde, zu massiven Verzögerungen im bundesweiten Zugverkehr. Am 16. Dezember 2009 kam es zu einem ähnlichen Fehler im Stellwerk des Hauptbahnhofs Hannover.
* Die USS Yorktown, ein weitgehend computerisiertes Schiff der Ticonderoga-Klasse, trieb nach Aussage der Navy bei einem Manöver im September 1997 knapp drei Stunden hilflos im Mittelmeer, nachdem ein Ingenieur 0 direkt in die Datenbank eingegeben hatte, um einen fehlerhaften Eintrag eines Sensors zu korrigieren. Die Software verwendete diesen Wert für Divisionen, die Folge waren „Division durch null“-Fehler, welche von der Software nicht korrekt abgefangen wurden. Es füllte sich im weiteren Verlauf der temporäre Speicher des Systems und als dieser voll war, wurde beim Überlauf der angrenzende Speicherbereich, der des Antriebssystems, überschrieben. Das Antriebssystem und das Rechnernetzwerk, das aus mehreren Windows-NT-Servern bestand, fielen aus, da sich der Fehler im Netzwerk ausgebreitet hatte. Es dauerte über drei Stunden, die Server zu reanimieren.
* Bei Toll Collect kam es 2003 unter anderem wegen der fehlenden Kompatibilität von Softwaremodulen zu drastischen Verzögerungen mit Vertragsstrafen und Einnahmeausfällen in Milliardenhöhe.
* In den USA hatte ein Sicherheitsexperte „null“ als Kfz-Kennzeichen eintragen lassen. Dieser Begriff wird in vielen IT-Systemen als Kennzeichen für das Fehlen eines Wertes verwendet und konnte nur aufgrund eines Programmfehlers eingetragen werden. Dieses eigentlich unzulässige Kfz-Kennzeichen hat deshalb dazu geführt, dass der Besitzer Strafzettel erhielt, bei denen kein Kfz-Kennzeichen erfasst war.

## Finanzwesen

* Anfang November 2005 konnte an der Tokioter Börse wegen eines Systemfehlers stundenlang kein Handel betrieben werden. Auch in den nachfolgenden Wochen gab es viele fehlerhafte Wertpapierorders; in einem Fall entstand sogar ein finanzieller Schaden von über 300 Millionen Dollar. Der Präsident der Börse, Takuo Tsurushima, trat daraufhin von seinem Amt zurück.
* Im August 2012 verlor die Firma Knight Capital innerhalb von 45 Minuten mehr als 440 Millionen US-Dollar (359 Millionen Euro) durch einen Fehler in ihrer Aktienhandels-Software. Ein neues Handelsprogramm überflutete den Markt mit fehlerhaften Handelsaufträgen und häufte einen Berg zu teuer gekaufter Aktien an. Die folgende Rettung der Firma durch Investoren kostete die Alteigentümer 70 bis 75 Prozent ihrer Anteile am Unternehmen.
* Im Oktober und November 2012 kam es auf Grund von Schwierigkeiten bei der Migration auf ein neues Kernbankensystem in den Online-Bankingsystemen der Bank Austria zu massiven Problemen. Das System war nach der 2-tägigen Umstellungsphase noch einen weiteren Tag nicht erreichbar, musste mehrmals neugestartet werden und war noch Tage nach der Umstellung teilweise nicht erreichbar, oft überlastet und dadurch langsam. Geldausgabeautomaten funktionierten nicht, Überweisungen wurden fehlerhaft durchgeführt und die neue Benutzeroberfläche wurde als zu unübersichtlich und kompliziert kritisiert. Neben der Zusicherung, etwaige Mahnspesen zu übernehmen, bot die Bank Austria ihren OnlineBanking- und BusinessNet-Kunden Gutscheine im Wert von jeweils 30 € an, in Summe 21 Millionen €.

## Kommunikation

* 2007 kam es in Österreich bei der Umstellung auf digitales Satellitenfernsehen zu Problemen in rund 30.000 Haushalten, weil Software im Digitalreceiver fehlerhaft war.
* In der Nacht vom 29. zum 30. Oktober 2007 kam es bei der Deutschen Telekom zu bundesweiten Ausfällen und Fehlverbindungen bei Sprachdiensten im Kommunikationssystem, weil eine aktualisierte Server-Software fehlerhaft war. Das System konnte erst nach mehreren Stunden durch die Installation der alten Software wieder zum Laufen gebracht werden.

## Militär

* Im Oktober 2007 kamen zehn Angehörige der südafrikanischen Armee durch ein vollautomatisiertes 35-mm-Flakgeschütz ums Leben. Als Ursache wurde ein defektes Computersystem vermutet.

## Informationstechnik

* Der sogenannte Box-Model-Bug im Internet Explorer sorgte dafür, dass viele Webdesigner für diesen Browser spezielle Anweisungen schreiben mussten, da das Programm Maßangaben für Webseiten-Elemente fehlerhaft interpretierte.
* Durch den Heartbleed-Bug in OpenSSL konnten über TLS- und DTLS-Verbindungen Teile des Arbeitsspeichers der Gegenseite ausgelesen werden.
* Manche Malware testet vor dem Ausführen des Schadcodes die Erreichbarkeit von zufällig generierten Internet-Adressen (Ping). In Testumgebungen wird häufig die Erreichbarkeit sämtlicher Internet-Adressen simuliert, unabhängig von deren realer Existenz. In diesem Fall soll sich die Malware selbstständig deaktivieren, um in einer Testumgebung keine nachvollziehbaren Aktionen durchzuführen. Bei der sich am 12. Mai 2017 weltweit verbreitenden Ransomware WannaCry wurde diese (vermutliche) Anti-Analyse-Maßnahme jedoch falsch umgesetzt: die getestete Internet-Adresse wurde in das Programm hartkodiert und war somit immer gleich. Daher konnte die tatsächliche Registrierung dieser Domain die weltweite Verbreitungswelle stoppen – obwohl dies ursprünglich nicht die Intention war.

## Fehler bei Jahreswechseln

* Vor dem Jahreswechsel 1999 / 2000 war das Jahr-2000-Problem ein Thema für die IT, weil im Einsatz stehende DV-Anwendungen Jahresangaben für das Jahr 2000 und höher (meist aufgrund nur 2-stelliger Speicherung) nicht korrekt verarbeiten konnten oder weil diese Fähigkeit nicht bekannt war und überprüft werden musste. Die Designentscheidungen hierzu lagen meist viele Jahre zurück, waren Entwicklern, Anwendern und Management im Prinzip bekannt, die ‚Fehler‘ traten aber (bei der Verarbeitung von Jahresangaben von 1900 bis 1999) nicht zutage. Weltweit wurde dies zum „bislang folgenreichsten und teuersten (menschlichen) Fehler im Umgang mit (High Tech) EDV-Systemen“, der nahezu bei allen IT-Anwendern zu Projekten führte, die nach verschiedenen Schätzungen insgesamt „bis zu 800 Mrd. US-Dollar Aufwand“ verursachten, zu großen Teilen lediglich zur Überprüfung der Jahr-2000-Fähigkeit, sofern nötig zu deren Herstellung. Trotzdem konnte das Auftreten von Fehlern nicht immer verhindert werden:

   * Bei der Berliner Feuerwehr gab es in der Neujahrsnacht chaotische Zustände.

   * Bei Dialysegeräten der Marke Gambro funktionierte die automatische Desinfektion nicht mehr.

   * Es kam weltweit zu Fehlfunktionen in Kernkraftwerken.

   * US-amerikanische Spionagesatelliten waren für einige Stunden außer Betrieb.

    Die „bis zu 800 Mrd. US-Dollar Aufwand“ können jedoch nicht direkt als „Kosten eines Fehlers“ gewertet werden, da oft deutlich veraltete Software über Jahrzehnte weitergenutzt und angepasst worden war, deren Ersatz und Neuprogrammierung ursprünglich deutlich vor dem Jahr 2000 geplant war. Eine eigentlich geplante Neu-Programmierung wurde also aufgeschoben – diese Kosten waren somit keine ‚Fehlerkosten‘, sondern zum Teil Kosten zur Ersatzbeschaffung von Software, veranlasst im Zusammenhang mit Y2K. Dennoch: „Nach Ansicht vieler Experten ist Y2K der Größte Anzunehmende Unfall – GAU – der Informationstechnologie“.
* Zu Beginn des Jahres 2010 konnten wegen der Fehlinterpretation der Jahreszahl „2010“ im EMV-Sicherheitschip viele Bankkunden tagelang an Geldautomaten kein Geld abheben.
