Apache HTTPd Entwickler als schädlich eingestuft

[VERIFIZIERT] Zuletzt aktualisiert von Joe Schaefer auf Di., 30 Sep. 2025    Quelle
 

geteert und gefedert.

Hintergrund

Seit 25 Jahren bin ich der führende Entwickler der apreq Unterprojekt innerhalb der Apache HTTPd-Server Übergeordnetes Projekt. Die ursprüngliche Idee von libapreqals sichere/performante HTML-Formularweiterleitung und Cookies Parsing-Bibliothek, kam aus einer Zusammenarbeit zwischen Lincoln Stein und Doug MacEachern in der späten 90s.

Es war damals meine Vision, die Bibliothek in eine generische, nicht perlbezogene Bibliothek zu verwandeln. C Bibliothek, die Sprachbindungen aus anderen Programmiersprachen unterstützen würde, weshalb ich mich für das Projekt einsetzte homed unter dem Dach HTTPd statt der Apache-Perl Projekt.

Mit dem Aufkommen von httpd-2 Xeine völlig neue I/O-Filter Architektur entstand aus httpd Kern, sowie die vollständige Trennung von APR aus dem Kern selbst als allgemeinere POSIX-ähnliche Portabilitätslaufzeit für C Projekte wie Subversion. Tatsächlich, libapreq2 ist näher mit dem Apache APR Projekt in diesem Sinne, und seine Perl API spiegelt, dass als Teil seiner APR::Anfrage Aufbau. Es verfügt über einen integrierten CGI-Modus für den Standalone-Betrieb, außerhalb der httpd Laufzeit, was das Testen von Einheiten zum Kinderspiel macht.

Die Schlüsselkomponente der apreq2 war schon immer der mod_apreq2 Apache-Modul, das zuerst von Bill Wrowe Anfang 2000s. Was er während einer Brainstorming-Sitzung mit mir (persönlich) entworfen hat, war eine einzelne Parser-Bibliothek, die httpd, dass die weitergeleitete Anforderung body mit jedem wichtigen Stakeholder-Modul zur Laufzeit geteilt wurde. Das bedeutete die Bereitstellung geparster Daten an Module, die an die Anforderungsverarbeitungs-Engine vor, während und nach angeschlossen waren. Und es musste auch für Unteranforderungen arbeiten, unabhängig davon, ob der Content Handler die geparsten Daten konsumiert oder den Raw Request Body selbst konsumiert und repariert hat.

Ich habe die Designziele im Laufe der Jahre mehrmals erklärt, auch im Jahr 2012 dev@httpd. Aber es war immer so, als würde man mit diesen Jungs mit dem Wind reden; sie haben sich einfach nie darum gekümmert.

Sturmwolken sammeln

Während diese Vision äußerst erfolgreich war, standen Sprachbindungen für mehrere Sprachen wie Perl, PHP, TCL, R, etc., seit etwa 2010 hat es sich als tragisch für die Vorhandene Benutzercommunity bestehend aus allen, nicht nur den Mitgliedern der Perl Gemeinschaft.

Was ist passiert? Philip Gollucci, einer meiner Kollegen von Perl/FreeBSD, begann zu agitieren, dass wir das Projekt fördern, das vom Server HTTPd selbst veröffentlicht werden soll. Was Philip wusste damals nicht sehr gut, wie sehr peevish, vapid und territorial Das Team wurde, was bedeutete, direkt mit ihnen zusammenarbeiten zu müssen Entscheidungen für Benutzer über die Codebasis.

Im Jahr 2012 bekam Philip, was er wollte, und ich hörte auf zu widerstehen, so dass er Gabel das bestehende Projekt kopiert und C Bibliothekskomponenten in HTTPd Core.

Fallout

2018 Ich habe die Stiftung massenhaft verlassen. Sie können die Gründe erraten.

Im Jahr 2020 oder so nutzte Google’s Security Team eine Alpha-Version von httpd 2.5, indem es seine 8-jährige Kopie von apreq2. Sie fanden einige Hotspots, die repariert werden mussten.

Anstatt die Höflichkeit zu haben, Philip zu erreichen, Issac Goldstand, Max Kellermann (@MaxKellermann), mich selbst (@joesuf4) oder andere an der Entwicklung von libapreq2, ein Junior-Ingenieur im HTTPd-Team ging über das Geschäft der “Bugfixierung” der gefundenen Schwachstellen Google. Seitdem können Sie in jedem Release eine Aufzeichnung seiner Test- und Fehlerarbeit sehen.

Aber der Coup de Grace war die Befreiung von 2022 2,17, wobei der Rookie-Entwickler absichtlich einen tödlichen Bug in die Codebase eingeführt, brechen Ein neunzehnjähriger Regressionstest.

Postmortal

Wenn Sie sich fragen, wie sich etwas mit einem gebrochenen Regressionstest entwickelt CPAN, müssen Sie prüfen, wie ERNEUT VERKNÜPFEN wird im Serverprojekt durchgeführt.

Lange Geschichte kurz, Sie kommentierten den Test und versendete es trotzdem und nannte es eine Sicherheitsfreigabe, die eine Sicherheitslücke behoben, für die jede vorherige Veröffentlichung anfällig war.

Superman-Logo.

Warum ist mir das jetzt wichtig? Weil ich der Sauger bin Benutzer erhalten Antworten als bekannter Sachverständiger.

Das ist scheiße, aber es tut mir leid, euch zu sagen, dass meine Tage mit dem Superman Cape in Apache vor etwa einem Jahrzehnt zu Ende waren.

Permalink  #apache   #httpd   #libapreq2   #mod_apreq2   #mod_perl  

 

   

Kommentare  



Index


KI-generiertes Thread-Bundle


Englisch Sprachabhängigkeiten


Sonnenstaronly


COVID-19 März 2020

  • Exponentielles Wachstum und COVID-19 — Nehmen Sie sich Zeit für den Abschnitt The Mathe — Es ist wichtig, ein gebildeter Verbraucher von Statistiken zu sein, die für die aktuelle Pandemie relevant sind … Do., 06 März 2025

 


Heyoka


NonFunctional Tests


 

  • Verteilerlisten — Diese temporären Adressen sind ein Anathema für ezmlm-idx‘s Abo- und Moderationssysteme … Sa., 27 Apr. 2024

 

  • Informationssicherheits-Primer — Alle Daten, die aus einem UNIX Systemaufruf zur Laufzeit stammen, müssen als erhalten behandelt werden … Sa., 27 Apr. 2024

 

  • Die Freude der DTrace — Messen Sie zweimal, schneiden Sie einmal, bevor Sie mit einer Codeoptimierung beginnen … Mi., 17 Apr. 2024

 


 

  • Über das Spam-Problem… — Das beste Plugin für qpsmtpdObwohl es schwierig ist zu verstehen, warum … So., 29 Jan. 2023

Hyperbolische Wabe


 

  • Spaß mit htop — Erweiterte htop-Funktionen auf beliebten Unix-Plattformen … Do., 19 Jan. 2023

Informationsarchitektur

  • Informationsarchitektur — Die gesamte Bandbreite an Technologien, die für das Design, die Präsentation, die Beziehungen und die architektonischen Einschränkungen relevant sind, die jede von Ihnen bereitgestellte URL abdecken … Mo., 11 März 2024

 

  • Die Bewegung DevOps — Die große Idee hinter der “Bewegung” ist nicht nur, den Entwicklern mehr Seil zu geben … Fr., 26 Apr. 2024

 

  • Anwendungsperformance — Viele Entwickler fallen in die Falle des Denkens, dass es bei der Leistungsoptimierung darum geht, jede Codezeile so effizient wie möglich zu machen. … Fr., 26 Apr. 2024