NeverD is a binary analysis and decompilation engine. We take reports of
defects in the toolchain itself seriously — especially issues that let
untrusted inputs compromise the machine running neverd or libneverd, or
that cause incorrect lifting, decompilation, or binary rewrite beyond what
the user asked for.
This policy does not cover misuse of NeverD to analyze malware, crack software, or build offensive tooling; that is outside the scope of coordinated disclosure here.
Security fixes are applied to the default branch (dev) and, when
practical, cherry-picked to the latest release tag. Pre-release or
unsupported branches may not receive patches.
| Version | Supported |
|---|---|
Latest release tag (v*) |
Yes |
dev |
Yes |
| Older tags | Best effort only |
Please do not open a public GitHub issue for security-sensitive reports.
Use GitHub Private Vulnerability Reporting for this repository. That keeps details confidential until a fix is ready.
If private reporting is unavailable, contact the maintainers through an existing private channel you already use with the project (do not post exploit details or proof-of-concept code in public issues, pull requests, or discussions).
A strong report helps us reproduce and fix faster:
- Summary — what breaks, and the impact (e.g. heap overflow in the PE loader, mis-lifted bounds check, crash on malformed EVM bytecode).
- Affected component — loader (PE / ELF / Mach-O / EVM), decoder,
lifter, MedIR/HighIR, LLVM backend, patch/rewriter, CLI driver,
libneverdC API, plugin ABI, etc. - NeverD version or commit — version banner from
neverd --help, C APIneverd_version(), or the git SHA (neverd --versionprints LLVM only). - Host platform — OS, architecture, and how NeverD was built.
- Minimal reproduction — smallest binary, hex input, flags, and command line (attach only what is needed).
- Proof of concept — crash log, ASan/Valgrind output, disassembly or IR diff showing wrong semantics, or before/after hash of a corrupted patch.
- Suggested severity (optional) — your view of exploitability.
- Good-faith research: do not access systems or data you do not own.
- Give us reasonable time to investigate and ship a fix before public disclosure (see timeline below).
- Do not exploit issues against third parties.
Reports we treat as security issues include, but are not limited to:
| Area | Examples |
|---|---|
| Engine crashes on untrusted input | Memory corruption, stack overflow, or use-after-free when loading, decoding, lifting, decompiling, or patching malformed or adversarial PE / ELF / Mach-O / EVM inputs. |
| Incorrect semantics | The lifter, decompiler, or patch pipeline emits IR, C, Solidity, or machine code that violates documented 1:1 semantics for supported instructions or opcodes, in a way that could plausibly mislead analysis or weaken memory safety without the user opting into unsafe behavior. |
| Binary rewrite integrity | patch or rewriter output that silently corrupts the target binary, breaks relocations, or changes runtime behavior beyond the requested edit. |
| Path and file handling | Directory traversal, arbitrary file read/write, or unsafe symlink behavior in the CLI, loader, or SDK when given attacker-controlled paths, response files, or output locations. |
| SDK / plugin boundary | Memory-safety bugs, buffer overflows, or lifetime errors in libneverd or the plugin ABI when called with valid API usage on untrusted session inputs. |
| Supply chain / build | Compromise of official release artifacts, reproducible-build breaks that hide tampering, or critical secrets embedded in distributed binaries. |
| Bundled dependencies | Vulnerabilities in third-party code as shipped in NeverD releases, when exploitable through normal neverd or SDK use. |
The following are generally not treated as security vulnerabilities:
- Intended analysis capability — lifting, decompiling, disassembling, or patching binaries the user supplies, including malware, game clients, or protected executables, when NeverD behaves as documented.
- User-controlled malicious binaries — decompiled or lifted output that describes attacker logic; analyzing hostile code is expected capability.
- Quality gaps on unsupported input — obfuscation, packed code, unknown opcodes, or formats outside the architecture coverage matrix. Report these as regular bugs unless NeverD documented a guarantee it failed to meet.
- Strict-mode failures —
UnliftedInstructionor other fail-loud errors for unsupported semantics; throwing instead of guessing is correct behavior. - Denial of service via extremely large inputs without a plausible security impact (still welcome as regular bugs).
- Issues in LLVM, Capstone, or Unicorn upstream — please report those to the respective projects; we may still track NeverD-specific triggers or workarounds.
- Social engineering, physical access, or third-party game / anti-cheat systems — outside this engine's threat model.
When in doubt, report privately anyway; we will clarify scope in the reply.
We aim to:
| Stage | Target |
|---|---|
| Initial acknowledgement | Within 72 hours |
| Triage and severity assessment | Within 7 days |
| Fix or mitigation plan | Depends on complexity; critical issues prioritized |
| Coordinated disclosure | After a fix is available on dev and, when applicable, a release |
We may ask for more information or offer a draft advisory for your review before publication.
- We prefer coordinated disclosure: work with us on a fix before public release of details.
- Credit will be given in release notes or the GitHub Security Advisory unless you prefer to remain anonymous.
- We do not pursue legal action against researchers who follow this policy in good faith.
We support responsible security research on NeverD builds you own or have permission to test. Research conducted in line with this policy — private report, no harm to third parties, reasonable disclosure timing — will not be treated as an attack on our infrastructure.
NeverD processes arbitrary binaries. Operators should:
- Treat input binaries and patch scripts like code execution: only analyze untrusted files in isolated environments (VM, container, CI sandbox).
- Verify release artifacts against tagged sources when reproducibility matters.
- Do not run
neverdwith elevated privileges unless required. - Review lifted IR, decompiled output, and patched binaries before relying on them in sensitive workflows.
Fixed vulnerabilities will be announced via GitHub Security Advisories and noted in release notes for tagged releases. Watch the repository releases or enable GitHub security notifications for updates.