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

[RULE REQUEST] Check for the import of outdated (end-of-life) Visual C++ redistributable DLLs #982

Open
gitpushmain opened this issue Feb 5, 2024 · 0 comments

Comments

@gitpushmain
Copy link

Would it make sense to add a rule to BinSkim to check for the import of outdated (end-of-life or end-of-support) DLLs?
Currently I am doing this with a Python script. Specifically, I am looking for the MajorLinkerVersion and the MinorLinkerVersion of a PE binary file and the imported Visual C++ Redistributable DLLs (https://learn.microsoft.com/en-us/cpp/windows/determining-which-dlls-to-redistribute?view=msvc-170).

With that information I can detect if an outdated Redistributable version is used. For example, if a binary file with the linker version 11.0 is importing a redistributable DLL (e.g., MSVCR110.dll), this redistributable (Visual Studio version) reached end-of-support, as can be seen here: https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170. So currently I based my detection on the linker version (< 12.0) and whether it is importing any redistributable DLL.

Using outdated versions poses a security risk, as it is not updated anymore, and security vulnerabilities won't be fixed. Therefore, I think it could make sense to have a rule to check files, if they are importing/requiring end-of-support DLLs, that could contain vulnerabilities.

I did not fill out the rule template yet, as I just wanted to know and discuss what you think about this proposal in general.


Rule Proposal: [Friendly Rule Name]

Rule metadata

  • Id:
  • Name:

Rule descriptions

  • Short:
  • Full:

Platform & applicability

  • Platform:
  • Applicable to:
  • Not applicable to:

User-facing strings

  • Fail:
  • Pass:
  • [Other]:

Links/Additional Information

Implementation Notes

How to resolve

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant