Inspiration
On October 21, 2026, PHP released emergency fixes for PHP2Shell, two critical bugs (both rated 9.2 out of 10) that let an unauthenticated attacker run code on a server with a single request. The patch shipped, but days later an estimated 33 million sites were still on affected versions. The sites left behind were food pantries, clinics, and small businesses with no one tracking advisories, and owners who are afraid an update will break their donation page, contact form, or uploads. We built Sewn to close that gap.
What it does
Sewn is an approval-gated security repair agent for organizations without a security team. It works in two modes:
Website assessment: Collects public HTTP(S) signals from a site and uses AI analysis, tied to fresh observations, to explain in plain language whether an advisory likely applies. It needs no deploy access and changes nothing on the live site. Repair lab: Runs against local Docker fixtures. It assesses, asks for one explicit approval, stages a candidate fix in isolation, runs unchanged tests (including a real 3 MiB upload), and activates only if every check passes. If the live activation fails, it restores the original and reports honestly that the site is not patched.
Verified fixes are saved as reusable “recipes” for similar sites, and each site re-runs its own tests.
How we built it
We built a working prototype with a web dashboard for assessments and a Docker-based repair lab. The model proposes a typed, constrained plan, while ordinary code and policy execute and verify it, with no arbitrary shell access. Every run records events, test outcomes, and provenance as an audit trail. The assessment side uses the Anthropic API to analyze the evidence collected from a site. [Add your stack: languages, frameworks, libraries.]
Challenges we ran into
Patch status is hard to confirm from outside. Linux distributions backport fixes while keeping the old version string, and many PHP services hide their version, so we check what the running site reports instead of trusting a version number. Mitigations look like fixes. Early workarounds only covered part of one bug, so we record mitigations and actual patches separately and never count a mitigation as patched. Keeping AI safely bounded. We had to separate the planner, the controller, and the verifier so the model never touches production directly. A moving target. A third related bug (CVE-2026-115560) was disclosed two days after the first fixes, and fake exploits and prank malware appeared under the PHP2Shell name. We had to design for a record of “what is fixed” that keeps changing.
Accomplishments that we’re proud of
A working end-to-end prototype, from assessment to staged verification to activation or rollback. A verification step that rejects a candidate that fails the real upload test while the original keeps serving. Honest reporting: a restored site is never labeled “patched,” and a mitigation alone never counts as a fix. Two modes with clear authority boundaries, so public assessment never implies permission to change a live site.
What we learned
For small organizations, the barrier is rarely “a patch doesn’t exist.” It is the fear of breaking the site, and no one having time to act. Trust comes from evidence rather than automation: tests, audit trails, and honest failure reporting matter as much as the fix. Version strings are unreliable, so verification has to check actual behavior. Some sites are too old to patch (PHP 7.3 and earlier got no fix) and need to be told plainly that they must upgrade.
What’s next for Sewn
Authorized connectors for hosting providers and control panels, starting read-only and moving to tightly scoped write access. An advisory pipeline covering PHP, WordPress plugins, and common stack CVEs, with human-reviewed policy packs. Scaling from one sequential repair worker to a multi-tenant queue with per-tenant isolation and roles for owners, helpers, and auditors. A fleet view for volunteers and community IT managing many sites, with curated, re-verified recipes. Continuous advisory monitoring, plus a free tier for qualifying nonprofits funded by grants and sponsors.
Log in or sign up for Devpost to join the conversation.