Skip to content

Conversation

theihor
Copy link
Collaborator

@theihor theihor commented Sep 3, 2025

Teach analyzer to evaluate indirect stack access when computing the
array of BpfState objects.

This allows to track stack loads and stores done through a register
other than r10. For example:

*(u64 *)(r1 +0) = r8

If at this point r1 = fp-24, then the value of r8 is written there. So
far bpfvv only could detect this from verifier-provided value
changes. Now it actually checks for the value of r1 at the point of a
store, and can detect a write to fp-24 even if value expression is
absent from the log.

Closes #28

@theihor
Copy link
Collaborator Author

theihor commented Sep 3, 2025

One commit on top of #70

Copy link
Collaborator

@jordalgo jordalgo left a comment

Choose a reason for hiding this comment

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

Overall looks good. Few minor nits.

Teach analyzer to evaluate indirect stack access when computing the
array of BpfState objects.

This allows to track stack loads and stores done through a register
other than r10. For example:

    *(u64 *)(r1 +0) = r8

If at this point r1 = fp-24, then the value of r8 is written there. So
far bpfvv only could detect this from verifier-provided value
changes. Now it actually checks for the value of r1 at the point of a
store, and can detect a write to fp-24 even if value expression is
absent from the log.
@theihor theihor merged commit 59dcbc9 into master Sep 4, 2025
1 check passed
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.

Better stack values dependencies tracking
2 participants