{"adoption": {"forks": 157, "observed_at": "2026-08-28T04:06:01.293706+00:00", "stars": 1975}, "canonical_url": "https://ross.abutalabs.com/products/hardened_malloc", "card": {"archived": false, "artifact_type": "library", "description": "Hardened allocator designed for modern systems. It has integration into Android's Bionic libc and can be used externally with musl and glibc as a dynamic library for use on other Linux-based platforms. It will gain more portability/integration over time.", "domain": ["security", "operating-systems", "developer-tools"], "enriched": true, "function": ["security", "cryptography"], "health_score": 95, "homepage": "https://grapheneos.org/", "language": "C", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["GrapheneOS/hardened_malloc"], "name": "GrapheneOS/hardened_malloc", "platform": ["cross-platform"], "pushed_at": "2026-08-13T17:29:43+00:00", "repo": "GrapheneOS/hardened_malloc", "stars": 1975, "tags": ["memory-allocator", "malloc", "hardening", "exploit-mitigation", "slab-allocator", "quarantine", "bionic", "musl", "glibc", "c", "android", "linux"], "topics": ["malloc", "security", "memory-allocation", "malloc-library", "memory-allocator", "memory", "hardening", "slab-allocator", "quarantine", "grapheneos"], "urls": [], "use_cases": ["replace glibc malloc with a hardened allocator", "harden a Linux application against heap exploitation", "secure memory allocation on Android via Bionic integration", "reduce heap fragmentation and metadata overhead", "mitigate use-after-free and double-free vulnerabilities", "load a hardened allocator into existing binaries via LD_PRELOAD"], "what_it_is": "hardened_malloc is a security-focused general purpose memory allocator implementing the malloc API with extensive hardening against heap corruption vulnerabilities. It integrates with Android's Bionic libc and can be used as a dynamic library with musl and glibc on Linux-based platforms.", "when_to_avoid": ["you need maximum allocator micro-benchmark performance over security", "you target 32-bit platforms or non-Linux operating systems", "you need Windows or macOS support"], "when_to_choose": ["you need strong protection against heap corruption exploits on Android or Linux", "you want a malloc replacement with quarantine, canaries, and write-after-free detection", "you are building a security-focused OS or hardened software distribution"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/hardened_malloc", "repo": "GrapheneOS/hardened_malloc", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.293706+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:04:51.348587+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd406b85b64912d4df8637a86c830ff0993939a88c30b31582374c8c2767e493", "fetched_at": "2026-08-28T04:06:01.293706+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GrapheneOS/hardened_malloc"}, {"content_hash": "fd2048a5631b42838394ad69fbca29cf03f9ae117fed34293907beaf66be479b", "fetched_at": "2026-08-29T10:43:57.654172+00:00", "kind": "homepage", "missing": false, "url": "https://grapheneos.org/"}, {"content_hash": "0c04eca559398f7711745edc30fe268aed45cd02febcfb7e364bcc2645fb3cc4", "fetched_at": "2026-08-29T10:43:57.663736+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/features"}, {"content_hash": "1069f5fe9080499791a54fdd0baefcf146f60df42913e7504413988e3269069a", "fetched_at": "2026-08-29T10:43:57.668511+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/install"}, {"content_hash": "8f5ac8ce4a477496c4351386c3cf0720bd350a158b295f6e6d247a9803810919", "fetched_at": "2026-08-29T10:43:57.670439+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/faq"}, {"content_hash": "5690feec07274b01638b59e541b5dac3e812b77f57b3888b466f3eb74204c803", "fetched_at": "2026-08-29T10:43:57.676360+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/releases"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.293706+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:04:51.348587+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd406b85b64912d4df8637a86c830ff0993939a88c30b31582374c8c2767e493", "fetched_at": "2026-08-28T04:06:01.293706+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GrapheneOS/hardened_malloc"}, {"content_hash": "fd2048a5631b42838394ad69fbca29cf03f9ae117fed34293907beaf66be479b", "fetched_at": "2026-08-29T10:43:57.654172+00:00", "kind": "homepage", "missing": false, "url": "https://grapheneos.org/"}, {"content_hash": "0c04eca559398f7711745edc30fe268aed45cd02febcfb7e364bcc2645fb3cc4", "fetched_at": "2026-08-29T10:43:57.663736+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/features"}, {"content_hash": "1069f5fe9080499791a54fdd0baefcf146f60df42913e7504413988e3269069a", "fetched_at": "2026-08-29T10:43:57.668511+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/install"}, {"content_hash": "8f5ac8ce4a477496c4351386c3cf0720bd350a158b295f6e6d247a9803810919", "fetched_at": "2026-08-29T10:43:57.670439+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/faq"}, {"content_hash": "5690feec07274b01638b59e541b5dac3e812b77f57b3888b466f3eb74204c803", "fetched_at": "2026-08-29T10:43:57.676360+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/releases"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:04:51.348587+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd406b85b64912d4df8637a86c830ff0993939a88c30b31582374c8c2767e493", "fetched_at": "2026-08-28T04:06:01.293706+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GrapheneOS/hardened_malloc"}, {"content_hash": "fd2048a5631b42838394ad69fbca29cf03f9ae117fed34293907beaf66be479b", "fetched_at": "2026-08-29T10:43:57.654172+00:00", "kind": "homepage", "missing": false, "url": "https://grapheneos.org/"}, {"content_hash": "0c04eca559398f7711745edc30fe268aed45cd02febcfb7e364bcc2645fb3cc4", "fetched_at": "2026-08-29T10:43:57.663736+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/features"}, {"content_hash": "1069f5fe9080499791a54fdd0baefcf146f60df42913e7504413988e3269069a", "fetched_at": "2026-08-29T10:43:57.668511+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/install"}, {"content_hash": "8f5ac8ce4a477496c4351386c3cf0720bd350a158b295f6e6d247a9803810919", "fetched_at": "2026-08-29T10:43:57.670439+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/faq"}, {"content_hash": "5690feec07274b01638b59e541b5dac3e812b77f57b3888b466f3eb74204c803", "fetched_at": "2026-08-29T10:43:57.676360+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/releases"}], "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:06:01.293706+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.293706+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.293706+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:04:51.348587+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd406b85b64912d4df8637a86c830ff0993939a88c30b31582374c8c2767e493", "fetched_at": "2026-08-28T04:06:01.293706+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GrapheneOS/hardened_malloc"}, {"content_hash": "fd2048a5631b42838394ad69fbca29cf03f9ae117fed34293907beaf66be479b", "fetched_at": "2026-08-29T10:43:57.654172+00:00", "kind": "homepage", "missing": false, "url": "https://grapheneos.org/"}, {"content_hash": "0c04eca559398f7711745edc30fe268aed45cd02febcfb7e364bcc2645fb3cc4", "fetched_at": "2026-08-29T10:43:57.663736+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/features"}, {"content_hash": "1069f5fe9080499791a54fdd0baefcf146f60df42913e7504413988e3269069a", "fetched_at": "2026-08-29T10:43:57.668511+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/install"}, {"content_hash": "8f5ac8ce4a477496c4351386c3cf0720bd350a158b295f6e6d247a9803810919", "fetched_at": "2026-08-29T10:43:57.670439+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/faq"}, {"content_hash": "5690feec07274b01638b59e541b5dac3e812b77f57b3888b466f3eb74204c803", "fetched_at": "2026-08-29T10:43:57.676360+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/releases"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.293706+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.293706+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:04:51.348587+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd406b85b64912d4df8637a86c830ff0993939a88c30b31582374c8c2767e493", "fetched_at": "2026-08-28T04:06:01.293706+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GrapheneOS/hardened_malloc"}, {"content_hash": "fd2048a5631b42838394ad69fbca29cf03f9ae117fed34293907beaf66be479b", "fetched_at": "2026-08-29T10:43:57.654172+00:00", "kind": "homepage", "missing": false, "url": "https://grapheneos.org/"}, {"content_hash": "0c04eca559398f7711745edc30fe268aed45cd02febcfb7e364bcc2645fb3cc4", "fetched_at": "2026-08-29T10:43:57.663736+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/features"}, {"content_hash": "1069f5fe9080499791a54fdd0baefcf146f60df42913e7504413988e3269069a", "fetched_at": "2026-08-29T10:43:57.668511+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/install"}, {"content_hash": "8f5ac8ce4a477496c4351386c3cf0720bd350a158b295f6e6d247a9803810919", "fetched_at": "2026-08-29T10:43:57.670439+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/faq"}, {"content_hash": "5690feec07274b01638b59e541b5dac3e812b77f57b3888b466f3eb74204c803", "fetched_at": "2026-08-29T10:43:57.676360+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/releases"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.293706+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.293706+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.293706+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:04:51.348587+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd406b85b64912d4df8637a86c830ff0993939a88c30b31582374c8c2767e493", "fetched_at": "2026-08-28T04:06:01.293706+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GrapheneOS/hardened_malloc"}, {"content_hash": "fd2048a5631b42838394ad69fbca29cf03f9ae117fed34293907beaf66be479b", "fetched_at": "2026-08-29T10:43:57.654172+00:00", "kind": "homepage", "missing": false, "url": "https://grapheneos.org/"}, {"content_hash": "0c04eca559398f7711745edc30fe268aed45cd02febcfb7e364bcc2645fb3cc4", "fetched_at": "2026-08-29T10:43:57.663736+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/features"}, {"content_hash": "1069f5fe9080499791a54fdd0baefcf146f60df42913e7504413988e3269069a", "fetched_at": "2026-08-29T10:43:57.668511+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/install"}, {"content_hash": "8f5ac8ce4a477496c4351386c3cf0720bd350a158b295f6e6d247a9803810919", "fetched_at": "2026-08-29T10:43:57.670439+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/faq"}, {"content_hash": "5690feec07274b01638b59e541b5dac3e812b77f57b3888b466f3eb74204c803", "fetched_at": "2026-08-29T10:43:57.676360+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/releases"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.293706+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:01.293706+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:04:51.348587+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd406b85b64912d4df8637a86c830ff0993939a88c30b31582374c8c2767e493", "fetched_at": "2026-08-28T04:06:01.293706+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GrapheneOS/hardened_malloc"}, {"content_hash": "fd2048a5631b42838394ad69fbca29cf03f9ae117fed34293907beaf66be479b", "fetched_at": "2026-08-29T10:43:57.654172+00:00", "kind": "homepage", "missing": false, "url": "https://grapheneos.org/"}, {"content_hash": "0c04eca559398f7711745edc30fe268aed45cd02febcfb7e364bcc2645fb3cc4", "fetched_at": "2026-08-29T10:43:57.663736+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/features"}, {"content_hash": "1069f5fe9080499791a54fdd0baefcf146f60df42913e7504413988e3269069a", "fetched_at": "2026-08-29T10:43:57.668511+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/install"}, {"content_hash": "8f5ac8ce4a477496c4351386c3cf0720bd350a158b295f6e6d247a9803810919", "fetched_at": "2026-08-29T10:43:57.670439+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/faq"}, {"content_hash": "5690feec07274b01638b59e541b5dac3e812b77f57b3888b466f3eb74204c803", "fetched_at": "2026-08-29T10:43:57.676360+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/releases"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:04:51.348587+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd406b85b64912d4df8637a86c830ff0993939a88c30b31582374c8c2767e493", "fetched_at": "2026-08-28T04:06:01.293706+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GrapheneOS/hardened_malloc"}, {"content_hash": "fd2048a5631b42838394ad69fbca29cf03f9ae117fed34293907beaf66be479b", "fetched_at": "2026-08-29T10:43:57.654172+00:00", "kind": "homepage", "missing": false, "url": "https://grapheneos.org/"}, {"content_hash": "0c04eca559398f7711745edc30fe268aed45cd02febcfb7e364bcc2645fb3cc4", "fetched_at": "2026-08-29T10:43:57.663736+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/features"}, {"content_hash": "1069f5fe9080499791a54fdd0baefcf146f60df42913e7504413988e3269069a", "fetched_at": "2026-08-29T10:43:57.668511+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/install"}, {"content_hash": "8f5ac8ce4a477496c4351386c3cf0720bd350a158b295f6e6d247a9803810919", "fetched_at": "2026-08-29T10:43:57.670439+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/faq"}, {"content_hash": "5690feec07274b01638b59e541b5dac3e812b77f57b3888b466f3eb74204c803", "fetched_at": "2026-08-29T10:43:57.676360+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/releases"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:04:51.348587+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd406b85b64912d4df8637a86c830ff0993939a88c30b31582374c8c2767e493", "fetched_at": "2026-08-28T04:06:01.293706+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GrapheneOS/hardened_malloc"}, {"content_hash": "fd2048a5631b42838394ad69fbca29cf03f9ae117fed34293907beaf66be479b", "fetched_at": "2026-08-29T10:43:57.654172+00:00", "kind": "homepage", "missing": false, "url": "https://grapheneos.org/"}, {"content_hash": "0c04eca559398f7711745edc30fe268aed45cd02febcfb7e364bcc2645fb3cc4", "fetched_at": "2026-08-29T10:43:57.663736+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/features"}, {"content_hash": "1069f5fe9080499791a54fdd0baefcf146f60df42913e7504413988e3269069a", "fetched_at": "2026-08-29T10:43:57.668511+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/install"}, {"content_hash": "8f5ac8ce4a477496c4351386c3cf0720bd350a158b295f6e6d247a9803810919", "fetched_at": "2026-08-29T10:43:57.670439+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/faq"}, {"content_hash": "5690feec07274b01638b59e541b5dac3e812b77f57b3888b466f3eb74204c803", "fetched_at": "2026-08-29T10:43:57.676360+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/releases"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:04:51.348587+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cd406b85b64912d4df8637a86c830ff0993939a88c30b31582374c8c2767e493", "fetched_at": "2026-08-28T04:06:01.293706+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GrapheneOS/hardened_malloc"}, {"content_hash": "fd2048a5631b42838394ad69fbca29cf03f9ae117fed34293907beaf66be479b", "fetched_at": "2026-08-29T10:43:57.654172+00:00", "kind": "homepage", "missing": false, "url": "https://grapheneos.org/"}, {"content_hash": "0c04eca559398f7711745edc30fe268aed45cd02febcfb7e364bcc2645fb3cc4", "fetched_at": "2026-08-29T10:43:57.663736+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/features"}, {"content_hash": "1069f5fe9080499791a54fdd0baefcf146f60df42913e7504413988e3269069a", "fetched_at": "2026-08-29T10:43:57.668511+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/install"}, {"content_hash": "8f5ac8ce4a477496c4351386c3cf0720bd350a158b295f6e6d247a9803810919", "fetched_at": "2026-08-29T10:43:57.670439+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/faq"}, {"content_hash": "5690feec07274b01638b59e541b5dac3e812b77f57b3888b466f3eb74204c803", "fetched_at": "2026-08-29T10:43:57.676360+00:00", "kind": "site_page", "missing": false, "url": "https://grapheneos.org/releases"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 39}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2932, "days_push": 20, "days_rel": 192, "gap_med": 496, "n_releases_24m": 2}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}