aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
Commit message (Collapse)AuthorAgeFilesLines
* pkg/corpus: increase the priority of programs that were rarely selectedcorpusfixGrigory Bazilevich11 hours2-1/+31
|
* syz-manager: information about probability-only inputs in dbGrigory Bazilevich11 hours3-4/+13
|
* pkg/corpus: upgrade corpus minimization algorithmGrigory Bazilevich11 hours3-4/+49
|
* pkg/fuzzer,pkg/corpus: detection and preservation of programs with ↵Grigory Bazilevich11 hours4-40/+78
| | | | probability coverage
* pkg/signal: new utility methodsGrigory Bazilevich11 hours1-0/+39
|
* pkg/corpus: update Programs List priority storageGrigory Bazilevich2026-02-155-17/+171
| | | | | | | | | | | Static prefix sums have been replaced with a Fenwick tree. In the current syzkaller, program priority was set based on a Signal received by a single system call. This commit allows priority to be changed dynamically, making it possible to maintain priority based on Signals from all system calls. Signed-off-by: Grigory Bazilevich <g.bazilevich@ispras.ru>
* pkg/aflow: ask LLM to call several tools at the same timeDmitry Vyukov2026-01-202-3/+10
| | | | This seems to help a bit with number of round-trips.
* pkg/aflow: cache disk usage in CacheDmitry Vyukov2026-01-201-10/+36
| | | | | | Calculating total disk usage of all cache entries can take very long time for large caches (needs to stat all files). This is especially problematic for tools/syz-aflow. Cache disk usage in the meta file.
* pkg/aflow/action/kernel: keep build files that codesearch will needDmitry Vyukov2026-01-202-8/+26
| | | | | We currently duplicate list of source extensions in the build action and codesearch tool. Unify the lists.
* pkg/aflow: add BadCallErrorDmitry Vyukov2026-01-2015-83/+195
| | | | | | | | | | The error allows tools to communicate that an error is not an infrastructure error that must fail the whole workflow, but rather a bad tool invocation by an LLM (e.g. asking for a non-existent file contents). Previously in the codesearcher tool we used a separate Missing bool to communicate that. With the error everything just becomes cleaner and nicer. The errors also allows all other tools to communicate any errors to the LLM when the normal results cannot be provided and don't make sense.
* pkg/codesearch: add read-file commandDmitry Vyukov2026-01-207-0/+66
| | | | Just provides full file contents as last resort.
* pkg/codesearch: add dir-index commandDmitry Vyukov2026-01-2012-0/+140
| | | | | dir-index provides a list of subdirectories and files in the given directory in the source tree.
* pkg/aflow: handle common LLM mis-behaviors wrt tool callingDmitry Vyukov2026-01-206-19/+302
| | | | | | | | | | | | | Gracefully handle (reply to LLM with error): - incorrect tool name - incorrect tool arg type - missing tool arg Silently handle: - more than one call to set-results - excessive tool args Fixes #6604
* pkg/aflow: handle model quota errorsDmitry Vyukov2026-01-205-1/+83
| | | | | | | | Detect model quota violations (assumed to be RPD). Make syz-agent not request jobs that use the model until the next quota reset time. Fixes #6573
* pkg/aflow: make LLM model per-agent rather than per-flowDmitry Vyukov2026-01-208-54/+94
| | | | | | Having LLM model per-agent is even more flexible than per-flow. We can have some more complex tasks during patch generation with the most elaborate model, but also some simpler ones with less elaborate models.
* executor, sys/linux, pkg: enable syz_kvm_setup_cpu for riscv646eanut2026-01-202-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements syz_kvm_setup_cpu for riscv64 architecture. The pseudo-syscall accepts VM fd, vCPU fd, host memory, and guest code as parameters. Additional parameters (ntext, flags, opts, nopt) are included for interface consistency with other architectures but are currently unused on riscv64. Implementation: - Set up guest memory via KVM_SET_USER_MEMORY_REGION - Copy guest code to guest memory - Initialize guest registers to enable code execution in S-mode - Return 0 on success, -1 on failure Testing: A test file syz_kvm_setup_cpu_riscv64 is included in sys/linux/test/ to verify basic functionality. Known limitations: - ifuzz is not yet compatible with riscv64. Temporary workaround: set text[riscv64] to TextTarget and return nil in createTargetIfuzzConfig for riscv64 to ensure generateText and mutateText work correctly. This patch also adds support for KVM_GET_ONE_REG ioctl.
* pkg/subsystem: regenerate Linux subsystemsAleksandr Nogikh2026-01-202-2672/+3475
|
* pkg/subsystem: adjust the wildcard matching rulesAleksandr Nogikh2026-01-202-4/+6
| | | | | | | | Contrary to the description on top of MAINTAINERS, many F: records that point to folders actually don't end with / or /*. The get_maintainer.pl script already tolerates this, so let's do the same.
* pkg/subsystem: export debug infoAleksandr Nogikh2026-01-207-35/+83
| | | | | | | | Make it possible to print more debugging information when (re)generating a subsystem list. Include parent inference details to the source code itself and add a -debug flag to list the source files assigned to each subsystem.
* pkg/aflow: retry LLM requests on transient errorsDmitry Vyukov2026-01-191-1/+20
| | | | Update #6573
* pkg/aflow: add ability to generate several candidate replies for LLM agentsDmitry Vyukov2026-01-196-74/+497
| | | | | | | | | Add LLMAgent.Candidates parameter. If set to a value N>1, then the agent is invoked N times, and all outputs become slices. The results can be later aggregated by another agent, as shown in the test.
* all: reformat C/C++ filesDmitry Vyukov2026-01-191-29/+29
|
* pkg/updater: fix autoupdateDmitry Vyukov2026-01-191-6/+9
| | | | | | Start update goroutine even in the case of early returns in UpdateOnStart. Fixes #6619
* pkg/vcs: be more strict in BaseForDiffAleksandr Nogikh2026-01-162-6/+41
| | | | | | | | | | Do not tolerate unknown blob hashes - it means that we are unable to find the correct base commit given the repository. Explicitly ignore newly added files - we definitely won't find their hashes. Explicitly skip malformed patches that won't have any blob hashes - otherwise we could end up with too many candidates and waste too much time.
* pkg/aflow: add notion of flow errorsDmitry Vyukov2026-01-163-3/+28
| | | | | | | | | | Flow errors denote failure of the flow itself, rather than an infrastructure error. A flow errors mean an expected condition in the flow when it cannot continue, and cannot produce expected outputs. For example, if we are doing something with the kernel, but the kernel build fails. Flow errors shouldn't be flagged in Fixes #6610
* pkg/gce: vm/gce: allow specifying instance tags in manager configAlexander Potapenko2026-01-151-1/+2
| | | | | | | | | | | | GCE instance tags can be used for various purposes, such as applying network firewall rules or filtering VMs for scheduling onto specific hosts. To support these use cases, syzkaller needs the ability to set instance tags during VM creation. This patch introduces a new tags field to the gce VM configuration that allows users to specify a list of tags to be attached to GCE instances created by syz-manager.
* pkg/aflow: expect CitationMetadataDmitry Vyukov2026-01-151-3/+3
| | | | | | | | | | | | | | CitationMetadata may be present in replies sometimes. CitationMetadata is a specific field in the Gemini API's response object that alerts you when the model has directly quoted or closely derived content from a specific source, such as a book, website, or open-source code repository. We've got the following error: syz-agent: unexpected reply fields ({Content:0xc0058eb4a0 CitationMetadata:0xc0094009a8 FinishMessage: TokenCount:0 FinishReason:STOP AvgLogprobs:0 GroundingMetadata:<nil> Index:0 LogprobsResult:<nil> SafetyRatings:[] URLContextMetadata:<nil>})
* dashboard/app: improve AI UIDmitry Vyukov2026-01-151-1/+7
| | | | | A bag of minor assorted improvements to data formatting. + show job results in the jobs table
* pkg/manager: match full function names in focus areasAleksandr Nogikh2026-01-142-2/+7
| | | | | | When configuring focus areas before directed fuzzing, construct regular expressions that match the exact function names. Otherwise, we end up adding more functions than intended.
* pkg/aflow: allow to specify model per-flowDmitry Vyukov2026-01-146-6/+21
| | | | | We may want to use a weaker model for some workflows. Allow to use different models for different workflows.
* dashboard/app: add race harmfullness labelDmitry Vyukov2026-01-132-7/+10
| | | | | Add race:harmful/benign label. Set it automatically by confirmed AI jobs.
* dashboard/app: make bug lists collapsibleDmitry Vyukov2026-01-131-0/+7
| | | | | | The bug lists on the main page are extremely long, it's very hard to navigate between them. Make bug lists collapsible.
* pkg/vcs: return multiple base commit candidatesAleksandr Nogikh2026-01-132-28/+62
| | | | | Return the commits that represent unique sets of branches. Sort the list topologically, breaking ties by commit date.
* pkg/aflow/flow/assessment: add UAF moderation workflowDmitry Vyukov2026-01-124-1/+122
| | | | | | Add workflow that can be used for moderation of UAF bugs (consistent/actionable reports), such UAF bugs can be upstreammed automatically, even if they happened only once and don't have a reproducer.
* pkg/aflow/flow/assessment: refine KCSAN promptDmitry Vyukov2026-01-122-39/+34
| | | | | | | | | | | | | | Rephrase the prompt to be only about KCSAN, currently it has some leftovers from more generic assessment prompt that covered KASAN bugs as well (actionability). Also add Confident bool output. We may want to act on both benign/non-benign, so we need to know when LLM wasn't actually sure either way. This should also be useful for manual verification/statistics. If LLM is not confident and can can admit that, it's much better than giving a wrong answer. But we will likely want to track percent of non-confident answers.
* pkg/osutil: fix CreationTimeDmitry Vyukov2026-01-094-12/+26
| | | | | | | | | | We return Ctime from CreationTime. But "C" does not stand for "creation", it stands for "status change" (inode update). It may or may not be the creation time. Use Btime (birth time) for creation time. Fixes #6547
* pkg/email: add tests for base-commit extractionPimyn Girgis2026-01-091-0/+110
|
* pkg/email: extract base-commit hash from emailsPimyn Girgis2026-01-092-34/+50
| | | | If the author of a patch series provides a base-commit tag, extract and store the hash.
* pkg/aflow/action/kernel: fix removal on unneeded build filesDmitry Vyukov2026-01-091-4/+4
| | | | | Paths passed to filepath.WalkDir are absolute (include the dir prefix), account for that. Strings returned by filepath.Ext include the dot, account for that as well.
* pkg/report: move TitleToCrashType to crash packageDmitry Vyukov2026-01-097-63/+62
| | | | | | | | | TitleToCrashType is a simple function with no heavy dependencies that is used by the dashboard app. Currnetly we have to import pkg/report into dashboard/app, and this package has lots of heavy deps (symbolizer, demangler, coverage report generation, etc). Move TitleToCrashType to pkg/report/crash (where it arguably belongs anyway).
* pkg/report: fix fuchsia ParseTaras Madan2026-01-091-3/+10
| | | | | rep.Output and rep.Report offsets are different because rep.Report is symbolized Fix converts offsets from symbolized version back to the raw version.
* pkg/vcs: find base commit by blob sha hashesAleksandr Nogikh2026-01-092-0/+264
| | | | | | Given a git diff, determine the latest commit where the modified files still have the exact sha hashes they had at the moment the git patch was created.
* pkg/vcs: extend git testing helpersAleksandr Nogikh2026-01-092-12/+29
| | | | | Add a commitChangeset() method to simplify setting up repository states in tests.
* pkg/vcs: extend ParseGitDiffAleksandr Nogikh2026-01-093-12/+49
| | | | Return not just the modified files, but also their blob hashes.
* pkg/aflow/action/kernel: keep few more files in build outputsDmitry Vyukov2026-01-091-2/+7
| | | | | Keep vmlinux for debug info/addr2line. Keep compile_commands.json, we need it for codesearch.
* syz-agent: add agentic serverDmitry Vyukov2026-01-091-1/+2
| | | | | Add server for running agentic workflows as part of syzbot. The architecture and use are similar to that of syz-ci.
* pkg/aflow/flow: add packageDmitry Vyukov2026-01-092-0/+15
|
* pkg/aflow/flow/patching: add bug fix patching workflowDmitry Vyukov2026-01-092-0/+195
|
* pkg/aflow/flow/assessment: add KCSAN bug assessment workflowDmitry Vyukov2026-01-092-0/+89
|
* pkg/aflow/action/kernel: add build actionDmitry Vyukov2026-01-091-0/+63
|