{"adoption": {"forks": 226, "observed_at": "2026-08-28T04:03:13.102538+00:00", "stars": 1011}, "canonical_url": "https://ross.abutalabs.com/products/aflnet", "card": {"archived": false, "artifact_type": "cli-tool", "description": "AFLNet: A Greybox Fuzzer for Network Protocols (https://thuanpv.github.io/publications/AFLNet_ICST20.pdf)", "domain": ["security", "testing", "networking", "developer-tools"], "enriched": true, "function": ["fuzzing", "testing", "security"], "health_score": 34, "homepage": null, "language": "C", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["aflnet/aflnet"], "name": "aflnet/aflnet", "platform": ["cli"], "pushed_at": "2025-05-26T22:53:22+00:00", "repo": "aflnet/aflnet", "stars": 1011, "tags": ["greybox-fuzzing", "protocol-fuzzing", "afl", "state-feedback", "network-protocols", "linux"], "topics": [], "urls": [], "use_cases": ["fuzz a network protocol server implementation", "find crashes and vulnerabilities in protocol implementations without a spec", "mutate recorded message sequences to explore server state space", "greybox fuzzing of servers like FTP, SMTP, DNS", "security testing of network daemons"], "what_it_is": "AFLNet is a greybox fuzzer for network protocol server implementations, extending American Fuzzy Lop with state-feedback derived from server response codes. It requires no protocol specification or message grammar, instead mutating recorded client-server message exchanges to increase code and state coverage.", "when_to_avoid": ["you need to fuzz client-side or non-network software (use vanilla AFL instead)", "you require a Windows or macOS fuzzing environment", "you need structured grammar-based generation rather than mutation of recorded traffic"], "when_to_choose": ["you have a server binary and recorded message exchanges but no protocol grammar", "you want coverage- and state-guided protocol fuzzing based on AFL", "you need to discover deep server states via response-code feedback"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/aflnet", "repo": "aflnet/aflnet", "role": "main", "score": 43}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.102538+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:11:49.312270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46938eec79eef903d9a9d806db76ecc5d1052dcb33f16960970c0aff27fd65c7", "fetched_at": "2026-08-28T04:03:13.102538+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aflnet/aflnet"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.102538+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:11:49.312270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46938eec79eef903d9a9d806db76ecc5d1052dcb33f16960970c0aff27fd65c7", "fetched_at": "2026-08-28T04:03:13.102538+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aflnet/aflnet"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:11:49.312270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46938eec79eef903d9a9d806db76ecc5d1052dcb33f16960970c0aff27fd65c7", "fetched_at": "2026-08-28T04:03:13.102538+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aflnet/aflnet"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.102538+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.102538+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.102538+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:11:49.312270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46938eec79eef903d9a9d806db76ecc5d1052dcb33f16960970c0aff27fd65c7", "fetched_at": "2026-08-28T04:03:13.102538+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aflnet/aflnet"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.102538+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.102538+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:11:49.312270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46938eec79eef903d9a9d806db76ecc5d1052dcb33f16960970c0aff27fd65c7", "fetched_at": "2026-08-28T04:03:13.102538+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aflnet/aflnet"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.102538+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.102538+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.102538+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:11:49.312270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46938eec79eef903d9a9d806db76ecc5d1052dcb33f16960970c0aff27fd65c7", "fetched_at": "2026-08-28T04:03:13.102538+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aflnet/aflnet"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.102538+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.102538+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:11:49.312270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46938eec79eef903d9a9d806db76ecc5d1052dcb33f16960970c0aff27fd65c7", "fetched_at": "2026-08-28T04:03:13.102538+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aflnet/aflnet"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:11:49.312270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46938eec79eef903d9a9d806db76ecc5d1052dcb33f16960970c0aff27fd65c7", "fetched_at": "2026-08-28T04:03:13.102538+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aflnet/aflnet"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:11:49.312270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46938eec79eef903d9a9d806db76ecc5d1052dcb33f16960970c0aff27fd65c7", "fetched_at": "2026-08-28T04:03:13.102538+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aflnet/aflnet"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:11:49.312270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46938eec79eef903d9a9d806db76ecc5d1052dcb33f16960970c0aff27fd65c7", "fetched_at": "2026-08-28T04:03:13.102538+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aflnet/aflnet"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 23, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2410, "days_push": 464, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 43, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}