Skip to content

docs: RFC#59

Draft
azchin wants to merge 6 commits intomainfrom
docs/rfc
Draft

docs: RFC#59
azchin wants to merge 6 commits intomainfrom
docs/rfc

Conversation

@azchin
Copy link
Contributor

@azchin azchin commented Feb 9, 2026

RFC for the OSS-CRS interface, configurations, and CRS integration.

We appreciate any and all feedback! Leave a comment or review in this issue if you are interested in discussing.

@HQ1995
Copy link
Contributor

HQ1995 commented Feb 10, 2026

One major consideration is whether we should combine bug-finding and bug-fixing into a single RFC, as we are merging these two processes together.


This RFC proposes a standardized set of interfaces and specifications for Cyber Reasoning Systems (CRSs) following the DARPA AIxCC competition.
The aim is to unify bug finding and reporting workflows to make them portable across teams, scalable from laptops to clusters, and compatible with oss-fuzz.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm sure that's the short-term aim, but this overview text doesn't justify why anyone would care about unifying bug finding and reporting workflows. This overview should also give the "bigger picture" that I think you know but aren't expressing. I suggest adding something like this:

Suggested change
This unification enables CRSs to interoperate and accurately measure their capabilities, leading to steady improvements over time so that real-world software vulnerabilities can be automatically identified and fixed at scale, vastly reducing the risks to society from vulnerable software.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(If you want, you can accept this comment, but feel to write something else. My point is that you need to explain why this can help users and society, not just what it does, to put it in context.)


**The implementation of this proposal: OSS-CRS ([https://github.com/sslab-gatech/oss-crs/tree/main](https://github.com/sslab-gatech/oss-crs/tree/main)) is an independent standard CRS framework that can test and run against OSS-Fuzz projects.**

## Glossary and terms

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know what these are, but does the reader know? These are just acronym expansions, which is a good start, but you might want to follow each with a 1-sentence definition if you think some readers might not know what these are (as you already did with libCRS).

This helps us understand where and how much LLMs can contribute without waiting for the entire campaign to finish.

#### Pushing OSS-Fuzz Closer to developers via Diff Mode

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nowhere does this explain what "Diff Mode" is. I mean, I can guess, but if that's a key concept, it should be briefly defined in this section (since this section is all about Diff Mode).

Copy link

@david-a-wheeler david-a-wheeler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here are several comments, I hope they help!


## Background

- **CRS (Cyber Reasoning System):** automation systems that find and patch vulnerabilities.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be in the definitions/glossary earlier, so you don't need to repeat it here?

## Standardization Proposals / CRS Integration Topology

### Command Structure

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add some intro text, e.g.:

Suggested change
Here are examples of command-line commands that our work would enable:


### LLM Configuration

LLM configuration uses the native [LiteLLM Proxy Configuration](https://docs.litellm.ai/docs/proxy/configs) format. The configuration file path is specified in the CRS-Compose file via `llm_config.litellm_config`.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You suddenly introduce litellm here, without any fanfare, yet it's implicitly defining key parts of the interface.

I don't object to the use of litellm, but since it's embedded in the proposal, you really should introduce litellm earlier & why you're using it. E.g., "As part of this proposal we propose embedding the litellm Python library...." Explain briefly why you're using it, why not some other library. Then it won't be a surprise later on.

docs/RFC.md Outdated
### Diff Mode Support

Diff Mode lets the CRS focus on code changes between commits instead of fuzzing the whole project.
It's useful for validating patches, PRs, or a series of commits where you only want to explore the modified code paths.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a fine explanation of Diff Mode, except you already introduced Diff Mode earlier. You should explain what Diff Mode is/does the first time you use the term. Maybe that goes early in the document, to make sure readers are aware of it. Diff Mode seems like a key new capability that deserves early discussion.

docs/RFC.md Outdated

### CRS Ensemble Support

**Motivation:** Combine pure agents with fuzzers for maximum coverage.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what a "pure" agent is. Is this only using AI? Only doing static analysis?

I'm all for combining and using fuzzers, but I think we should use all tools available for finding vulnerabilities - if a traditional static analysis tool, or an AI reading code, can help find vulnerabilities, great! Indeed, I'd love to see human inputs as a potential source (e.g., "I'm especially concerned that the interaction of X and Y might produce Z, can you look into that?").

docs/RFC.md Outdated

#### Environment Variables

CRSs receive the following environment variables:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
CRSs receive the following environment variables:
CRSs may receive the following environment variables:

Are all of these strictly required? I doubt it. I suggest that these be as optional as you can make them.

- Secure handling of LLM API keys.
- Resource isolation between CRS instances.

## References

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would expect the AIxCC competition (at least some key docs) be included in the references. What about the oss-fuzz documentation?

Signed-off-by: Andrew Chin <achin34@gatech.edu>
Signed-off-by: Andrew Chin <achin34@gatech.edu>
Signed-off-by: Andrew Chin <achin34@gatech.edu>
Signed-off-by: Andrew Chin <achin34@gatech.edu>
Signed-off-by: Andrew Chin <achin34@gatech.edu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants