Ein lustiger Bug in Chrome MV3-Erweiterungen

2025-07-13

Der Übergang von Google Chrome von MV2 zu MV3 entfernte die Berechtigung webRequestBlocking, wodurch viele Werbeblocker defekt wurden. Der Autor entdeckte jedoch einen skurrilen Bug: Aufgrund der Verwendung von JavaScript-Bindungen in Chrome-Erweiterungs-APIs konnte durch Manipulation von Parametern im `chrome.webRequest`-Ereigniskonstruktor die Berechtigungsprüfung umgangen und die Werbeblockierung aktiviert werden. Obwohl dieser Bug kein Sicherheitsrisiko darstellte, hob er potenzielle Probleme in altem Code und die Möglichkeit hervor, unerwartete Ergebnisse durch geschickte Ausnutzung technischer Details zu erzielen. Der Autor meldete den Bug an Google, und er wurde inzwischen behoben.

Mehr lesen
Entwicklung

Kritische ChromeOS-Schwachstelle: Volle Systemkontrolle durch Chrome-Erweiterungen

2025-05-28

Ein Sicherheitsforscher hat eine kritische Schwachstelle im ChromeOS-Dateimanager entdeckt, die es bösartigen Chrome-Erweiterungen ermöglicht, die vollständige Systemkontrolle zu übernehmen. Durch Ausnutzung einer filesystem:chrome://file-manager-URL kann die Schwachstelle das Lesen und Schreiben von Benutzerdateien und die Ausführung beliebigen Codes ermöglichen. Der Fehler nutzt veraltete JavaScript-APIs in ChromeOS und fehlerhafte Konfigurationen von Berechtigungen für chrome://-Seiten aus. Der Angreifer kann das System vollständig kompromittieren, auf Benutzerdaten zugreifen, Systemeinstellungen ändern und sogar bösartigen Code über Crostini ausführen. Obwohl behoben, unterstreicht die Schwachstelle das Risiko langfristiger Designentscheidungen in großen und komplexen Systemen wie Chrome/ChromeOS.

Mehr lesen

Jenseits von Zig und Rust: Ein benutzerfreundlicherer Ansatz für Metaprogrammierung

2025-05-26

Dieser Artikel untersucht ein neuartiges Design für Programmiersprachen, das die Stärken von Rusts Hindley-Milner-Typsystem und Zigs Kompilierzeitfunktionen kombiniert und gleichzeitig die Komplexitäten von Zigs „Typen als Werte“-Ansatz vermeidet. Durch die Einführung des `@`-Operators für die Kompilierzeit-Ausführung, des `Abstract`-Typs für Kompilierzeit-Abstraktionen, der `TypeInfo`- und `Field`-Typen für die Typintrospection und der `Code`- und `parse`-Funktionen für die Codemanipulation erreicht dieses Design leistungsstarke Metaprogrammierungsfunktionen wie die automatische Codegenerierung und die Implementierung von TypeScript-ähnlichen Utility-Typen wie `Partial`, wobei gleichzeitig die Lesbarkeit des Codes und die einfache Begründung erhalten bleiben. Dies stellt einen neuen Ansatz dar, um leistungsstarke Metaprogrammierung zu erreichen und gleichzeitig die Benutzerfreundlichkeit des Typsystems zu bewahren, und bietet neue Perspektiven für das Design zukünftiger Sprachen.

Mehr lesen