-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Allow loading dependencies by name #1594
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
Conversation
3872b7b to
4605226
Compare
egfefey
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From the security standpoint, this is good for now.
A few notes:
- This is still up for discussion but anything beside ERROR_SUCCESS from WinVerifyTrust should result in an error instead of a warning sometimes. The user always has to option to turn off signature verification if they want, so once it's on, it's either success or failure.
- Might also need review from the TBB team.
- If there are some testing results that we can share, that will be great.
egfefey
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update to use SearchPathA is good from the security point of view.
dd5a544 to
5e6c672
Compare
Thanks, @egfefey! Then I proceed with productization of this patch. |
6f001d1 to
65b3f89
Compare
81f5e1b to
6b276c7
Compare
Signed-off-by: Fedotov, Aleksei <[email protected]>
Signed-off-by: Fedotov, Aleksei <[email protected]>
Signed-off-by: Fedotov, Aleksei <[email protected]>
6b276c7 to
d11e413
Compare
kboyarinov
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM overall but I didn't review warnings and error codes in details
|
@aleksei-fedotov Please adjust the description because signature check is now OFF by default. |
81072c0
Description
This PR allows loading dependencies by module name only as it is proposed in this RFC. To strengthen the security and avoid loading malicious code, the signature verification for modules being loaded is also introduced.
However, to avoid breaking compatibility with existing scenarios, the signature verification is disabled by default. To notify about that the following CMake warning appears on the console when
cmakecommand is invoked for the first time:, drawing user's attention to this change and allowing to explicitly choose whether user wants unsigned or having incorrect signature modules to be loaded or not.
To avoid loading of such modules, user needs specifying
-DTBB_VERIFY_DEPENDENCY_SIGNATURE=ONflag in the invocation command of CMake. In this case the warning transforms in a regular status message of the form:If, however, user ignores the warning, the following invocations of
cmakecommand show that the signature verification setting remains disabled:The patch also adds optional reporting of dynamic link issues. Examples of the output:
The issues reporting is disabled by default and can be enabled by setting
TBB_DYNAMIC_LINK_WARNINGmacro during the build.