Please report security issues privately — do not open a public issue for a vulnerability.
Use GitHub's private reporting: go to the repository's Security tab → Report a vulnerability (GitHub Security Advisories). If that is unavailable, open a regular issue asking for a private contact channel without including any details of the vulnerability.
We aim to acknowledge a report within a few days. Please give us a reasonable window to release a fix before any public disclosure.
Security fixes are applied to the latest main; there are no separately
maintained release branches.
Project64 is a local developer tool that drives the VICE emulator; it is not a network service and handles no user credentials. Understanding what it does with your machine helps you assess risk:
- Local emulator monitor. Each session launches
x64scand speaks to its binary monitor over a TCP socket bound to127.0.0.1on an OS-assigned port. Anything already able to run code on your machine could connect to that socket and control the emulated machine (read/write emulated memory, set breakpoints, feed input). This is loopback-only and no worse than local code execution you already have, but it is an intentional local interface. - External toolchain execution. The tools invoke
x64sc,petcat,c1541,cartconv(VICE), andca65/ld65(cc65), located viaPATHor theC64_TOOLS_*environment variables. As with any build tool, a poisonedPATHor a maliciousC64_TOOLS_CA65/C64_TOOLS_X64SCvalue would run attacker-controlled binaries. Only run in an environment whosePATHand those variables you trust. - Filesystem access (CLI and MCP). Commands and MCP tools read and write
files you point them at — assembling/tokenizing source, writing
.prg/ label/PNG/disk-image/cartridge outputs, and copying files in and out of disk images. Some of it edits a named image in place — renaming and scratching files, writing raw sectors, and repairing the BAM — andc64 disk buildreplaces its output image wholesale, plus writes a<image-stem>.<name>.lblbeside it for every assembled entry in the manifest. They do not restrict paths, so treat their file arguments with the same care as any shell command's. - Designed to be driven by AI agents. When an AI agent operates these tools, it acts with your filesystem and shell permissions. Review what an agent is asked to do, and prefer running agents in a workspace scoped to this project. The emulated 6502 program itself is fully sandboxed inside VICE and cannot affect the host.
What is out of scope: the behavior of programs inside the emulator (they run in VICE's sandbox), and issues in VICE or cc65 themselves (report those to their respective projects). Commodore ROM images are never bundled or committed — the tools read ROM bytes only from the emulator you installed.