Skip to content

Add filament project#15723

Open
gojo-satorou-v7 wants to merge 3 commits into
google:masterfrom
gojo-satorou-v7:add-filament-project
Open

Add filament project#15723
gojo-satorou-v7 wants to merge 3 commits into
google:masterfrom
gojo-satorou-v7:add-filament-project

Conversation

@gojo-satorou-v7

Copy link
Copy Markdown

New project integration: google/filament

filament is Google's open-source real-time physically based renderer (Android, desktop, web). It loads untrusted 3D assets, so its asset loaders are a meaningful attack surface. filament is not currently an OSS-Fuzz project and ships no first-party fuzz target (the only in-tree fuzzers are vendored third-party suites that don't exercise filament's loaders).

This integration adds three libFuzzer targets over filament's untrusted-asset decode paths:

Target Entry point Format
filameshio_fuzzer filamesh::MeshReader::loadMeshFromBuffer .filamesh
gltfio_meshopt_fuzzer filament::gltfio::utility::decodeMeshoptCompression (real cgltf parse + EXT_meshopt_compression) glTF/GLB
gltfio_accessor_fuzzer cgltf_accessor_unpack_floats over every accessor (incl. sparse) glTF/GLB

Notes for reviewers:

  • Built Release with -DNDEBUG on purpose: filament gates cgltf_validate behind #ifndef NDEBUG, and meshoptimizer enforces its decoder preconditions with assert() only — so the shipping configuration is the one worth fuzzing (ASan still observes OOB writes).
  • build.sh relaxes filament's -Werror / -Wthread-safety only as needed to build under the OSS-Fuzz clang + sanitizer flags; it uses the NOOP backend so the targets run headless (no GPU).
  • libc++/ninja installed in the Dockerfile; targets link the real filameshio / gltfio_core libraries.

primary_contact set in project.yaml.

New OSS-Fuzz integration for google/filament (Google's real-time PBR renderer). Adds three libFuzzer targets over filament's untrusted-asset loaders:
  - filameshio_fuzzer:      MeshReader::loadMeshFromBuffer (.filamesh)
  - gltfio_meshopt_fuzzer:  gltfio EXT_meshopt_compression decode (glTF/GLB)
  - gltfio_accessor_fuzzer: gltfio cgltf accessor unpack, incl. sparse (glTF/GLB)

Built Release with -DNDEBUG so the shipping configuration is exercised (filament gates cgltf_validate behind #ifndef NDEBUG and meshoptimizer enforces decoder preconditions with assert() only).
@github-actions

Copy link
Copy Markdown

gojo-satorou-v7 is integrating a new project:
- Main repo: https://github.com/google/filament
- Criticality score: 0.55686

@DavidKorczynski DavidKorczynski left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you please coordinate this with upstream maintainers?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants