aws / aws/aws-encryption-sdk-c
Avoid usage of __CPROVER_havoc_object
- Dominant language
- C
- Stars
- 63
- Forks
- 59
- PR merge metrics
- No merged PRs in 30d
Description
A call to __CPROVER_havoc_object will overwrite an entire CBMC object. If the pointer being passed to write_unconstrained_data is part of a larger struct, CBMC will overwrite the larger struct: https://github.com/aws/aws-encryption-sdk-c/blob/c51bf1819ecec37b61fdf34e58d81f5083e6b39c/verification/cbmc/sources/openssl/ec_override.c#L486-L492
Issues related: #652
Contributor guide
Research direction
Read verification/cbmc/sources/openssl/ec_override.c around lines 486-492 and trace write_unconstrained_data to understand how __CPROVER_havoc_object is used. Run the relevant CBMC verification and confirm that the replacement leaves surrounding struct fields unchanged when the pointer targets part of a larger object.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- security, testing-qa
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 40/100