Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Security policy

This policy is for anyone who depends on function-wasm or wants to report a vulnerability in it: how to report one, which releases receive fixes and where the fixes for each kind of code in this repository come from.

Reporting a vulnerability

Report a vulnerability through GitHub’s private reporting form, “Report a vulnerability” under the repository’s Security tab, rather than in a public issue. The report is private to you and the maintainers until the advisory is published.

Supported releases

Through 0.x only the latest release line receives fixes; upgrade to the latest release to get one. From 1.0.0 on, an older release line can be patched on request.

The runtime

The function binary, its image, the workspace Cargo.lock it’s built from, and the Crossplane package that embeds the image: the code that runs in your cluster. The maintainers fix a vulnerability here as a patch release of the latest release line. Every pull request runs cargo deny over the workspace’s dependency graph (deny.toml), so a published advisory against a pinned crate fails the merge, and the same check runs every week against main. The grype-scan.yml workflow scans the image of the latest release every week and reports what it finds to GitHub code scanning, and Renovate opens a pull request when an advisory affects one of the workspace’s crates.

Scaffolded projects

The projects guestfn init writes, from the templates under crates/guestfn/templates/. You build and publish these. Each release refreshes their dependency pins, so a project scaffolded with the latest guestfn starts current. Once written, the project is yours: guestfn doesn’t update it, so update its dependencies as you would in any other project.

Examples

The guests under examples/ illustrate the guest languages. Three of them, cloudflare-origin, policy-gate and pdb-addon, are published as signed OCI artifacts under ghcr.io/jonasz-lasut/wasmfn/examples/, so a Composition can reference them. The runtime image contains only the runtime binary, and the package embeds only the example manifests of examples/pdb-addon/example. Renovate refreshes the examples’ dependencies in a monthly batch that merges once the end-to-end suite passes, and its vulnerability pull requests against them merge when their checks pass. The maintainers dismiss an alert against an example when a sandboxed WebAssembly guest can’t reach the code or no fix exists.