news.volyx.in

Fuzzing Ladybird with tools from Google Project Zero (awesomekling.substack.com)

522 points by awesomekling · 883 days ago · 60 comments on HN

Article summary

The article discusses the process of fuzzing Ladybird, a web browser, with tools from Google Project Zero to identify and fix security issues. The author used Domato, a DOM fuzzer, to generate randomized web pages and test Ladybird's handling of unusual HTML, CSS, and JavaScript. This process revealed several issues, including a null pointer dereference, infinite recursion in SVG, and a spec bug. The author was able to fix these issues and commit the changes.

Main themes

  • Fuzzing and security testing
  • Web browser development
  • HTML and CSS parsing
  • SVG implementation
  • Spec bugs and standardization

What commenters say

  • The approach of starting with a basic implementation and then fuzzing it to find and fix issues is a viable way to develop a robust web browser.
  • A strict, spec-compliant browser may not be practical for everyday use due to the prevalence of non-standard code on the web.
  • The complexity of the web platform makes it difficult to develop a browser that is both robust and efficient, and it may be necessary to prioritize one over the other.
  • The value of having multiple independent implementations of a spec is demonstrated by the discovery of a spec bug through the Ladybird project.
  • The use of fuzzing tools can help identify issues that may not be caught through traditional testing methods, but may not be sufficient to ensure a browser's overall stability and security.
  • The development of a web browser requires a balance between following the spec and handling real-world, non-standard code, and it is unclear what the best approach is.
  • The idea of a 'real browser' is subjective and can depend on various factors, including the level of spec compliance, performance, and compatibility with existing websites.
  • The web's unique characteristics, such as the blurring of lines between code and data, make it challenging to develop a browser that is both secure and functional.