Skip to content

Conversation

@T0pAc3
Copy link
Collaborator

@T0pAc3 T0pAc3 commented Jun 13, 2025

Summary

a plugin that finds the reachability of imported functions from exported functions

If merged this pull request will

Proposed changes

This is the 1.0 of the plugin. It returns a python dictionary of the imported functions reachable by the exported function of every binary.

@T0pAc3
Copy link
Collaborator Author

T0pAc3 commented Jun 13, 2025

Ok, now it should be working, thanks for being patient with all of the failed pull requests.

authors = [
{name = "Seth Bredbenner", email = "[email protected]"},
]
description = "Surfactant plugin for running grype on files"
Copy link
Collaborator

Choose a reason for hiding this comment

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

Description here needs updating

## Important Licensing Information
Main Project License (Surfactant): MIT License.

Plugin License: MIT License, but it includes and uses cve-bin-tool, which is GPL-3.0 licensed.
Copy link
Collaborator

Choose a reason for hiding this comment

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

cve-bin-tool line here does not apply to this plugin.

Comment on lines +11 to +15
After installing the plugin, run Surfactant to generate an SBOM as usual and entries for ELF
and PE files will contain a metadata object with the information that checksec.py was able
to get about security related features.

After the plugin installation, run Surfactant as you normally would to create an SBOM. For binary files analyzed by this plugin, additional JSON files will be generated containing vulnerability data extracted from the binaries. If there are duplicate hashed files, the extractor will check if they have the exported functions entries and skip remaking the output file if so.
Copy link
Collaborator

Choose a reason for hiding this comment

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

These lines don't describe the reachability plugin.

Comment on lines +17 to +31
Example:
Output Filename: `reachability.json`

```json
{
"filename": {
"exp_func": {
"library": [
"imp_func1",
"imp_func2"
]
}
}
}
```
Copy link
Collaborator

Choose a reason for hiding this comment

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

I don't think this description is accurate either -- the json blob looks slightly different if I'm remembering correctly, and is added to the metadata list for software entries rather than being in a separate file.

}
```

The plugin's functionality can be toggled via Surfactant's plugin management features, using the plugin name `surfactantplugin_reachability.py` as defined in the `pyproject.toml` under the `project.entry-points."surfactant"` section.
Copy link
Collaborator

Choose a reason for hiding this comment

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

The plugin name to enable/disable it is surfactantplugin_reachability, without the .py suffix.

@github-actions
Copy link

✅ No SBOM Changes Detected

For commit 2f95acc (Run 16634709950)
Compared against commit 1b3fa13 (Run 16633319903)

@nightlark nightlark added the enhancement New feature or request label Sep 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants