Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

makeFileResource likely can forge references #227

Open
MostAwesomeDude opened this issue Mar 17, 2021 · 1 comment
Open

makeFileResource likely can forge references #227

MostAwesomeDude opened this issue Mar 17, 2021 · 1 comment
Labels
Specification: Entrypoint Capabilities Capabilities which are only accessible from entrypoints

Comments

@MostAwesomeDude
Copy link
Contributor

See totally_safe_transmute for a demonstration in Rust. To prevent this particular attack:

  • We could forbid access to procfs via makeFileResource.
  • In addition, we could attenuate procfs specifically so that only specific parts of the process can be reflected into user-level code. This attenuated entrypoint capability would be distinct from makeFileResource. The attenuation could include traversal into subprocesses.
  • We could ponder randomizing the heap somewhat, or otherwise making it harder to find object addresses. We already have it as an explicit goal that, even upon raw access to the heap, an attacker would have trouble finding the objects to which they want to fraudulently refer.

This isn't urgent, but it's very much the sort of thing that Monte should try to abrogate.

@MostAwesomeDude MostAwesomeDude added the Specification: Entrypoint Capabilities Capabilities which are only accessible from entrypoints label Mar 17, 2021
@dckc
Copy link
Member

dckc commented Mar 17, 2021

A straightforward, low-cost approach is: document it. That is: document that since makeFileResource provides access to the filesystem, and linux has a /proc/self/mem thingy in the filesystem, that makeFileResource on linux can access process memory in a way that violates encapsulation, memory safety, and sanity itself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Specification: Entrypoint Capabilities Capabilities which are only accessible from entrypoints
Projects
None yet
Development

No branches or pull requests

2 participants