summaryrefslogtreecommitdiffstats
path: root/base/win
diff options
context:
space:
mode:
authorPenny MacNeil <pennymac@chromium.org>2016-02-03 09:33:31 -0800
committerPenny MacNeil <pennymac@chromium.org>2016-02-03 17:36:13 +0000
commit441d852dbcb7b9b31328393c7e31562b1e268399 (patch)
treed1ae86ec80bc2b28d7b2dfbfa55c32db30a4edb7 /base/win
parent5afc367d65356a8681ad1ae74eee38a18a545f76 (diff)
downloadchromium_src-441d852dbcb7b9b31328393c7e31562b1e268399.zip
chromium_src-441d852dbcb7b9b31328393c7e31562b1e268399.tar.gz
chromium_src-441d852dbcb7b9b31328393c7e31562b1e268399.tar.bz2
[Win10 sandbox mitigations] Four new Win10 mitigations added.
1. Disable non-system font loading on >= WIN10 (MITIGATION_NONSYSTEM_FONT_DISABLE). 2. Disable image loads from remote devices on >= WIN10_TH2 (MITIGATION_IMAGE_LOAD_NO_REMOTE). 3. Disable loading images that are labelled low integrity mandatory on >= WIN10_TH2 (MITIGATION_IMAGE_LOAD_NO_LOW_LABEL). 4. Extra disabling of child process creation on >= WIN10_TH2. In BrokerServicesBase::SpawnTarget(), if JobLevel <= JOB_LIMITED_USER, set PROC_THREAD_ATTRIBUTE_CHILD_PROCESS_POLICY to PROCESS_CREATION_CHILD_PROCESS_RESTRICTED via UpdateProcThreadAttribute(). This CL enables all four mitigations on every Chrome process except for browser. sbox_integration_tests have also been updated appropriately. base::win::VERSION_WIN10_TH2 has been added to identify Threshold 2/1511/10586. BUG=504006 R=jschuh@chromium.org, wfh@chromium.org Review URL: https://codereview.chromium.org/1626623003 . Cr-Commit-Position: refs/heads/master@{#373265}
Diffstat (limited to 'base/win')
-rw-r--r--base/win/windows_version.cc6
-rw-r--r--base/win/windows_version.h15
2 files changed, 13 insertions, 8 deletions
diff --git a/base/win/windows_version.cc b/base/win/windows_version.cc
index 35cdbb3..7a8b8fd 100644
--- a/base/win/windows_version.cc
+++ b/base/win/windows_version.cc
@@ -65,7 +65,11 @@ OSInfo::OSInfo()
break;
}
} else if (version_number_.major == 10) {
- version_ = VERSION_WIN10;
+ if (version_number_.build < 10586) {
+ version_ = VERSION_WIN10;
+ } else {
+ version_ = VERSION_WIN10_TH2;
+ }
} else if (version_number_.major > 6) {
NOTREACHED();
version_ = VERSION_WIN_LAST;
diff --git a/base/win/windows_version.h b/base/win/windows_version.h
index c9bbd4f..676bd97 100644
--- a/base/win/windows_version.h
+++ b/base/win/windows_version.h
@@ -24,13 +24,14 @@ namespace win {
enum Version {
VERSION_PRE_XP = 0, // Not supported.
VERSION_XP,
- VERSION_SERVER_2003, // Also includes XP Pro x64 and Server 2003 R2.
- VERSION_VISTA, // Also includes Windows Server 2008.
- VERSION_WIN7, // Also includes Windows Server 2008 R2.
- VERSION_WIN8, // Also includes Windows Server 2012.
- VERSION_WIN8_1, // Also includes Windows Server 2012 R2.
- VERSION_WIN10, // Also includes Windows 10 Server.
- VERSION_WIN_LAST, // Indicates error condition.
+ VERSION_SERVER_2003, // Also includes XP Pro x64 and Server 2003 R2.
+ VERSION_VISTA, // Also includes Windows Server 2008.
+ VERSION_WIN7, // Also includes Windows Server 2008 R2.
+ VERSION_WIN8, // Also includes Windows Server 2012.
+ VERSION_WIN8_1, // Also includes Windows Server 2012 R2.
+ VERSION_WIN10, // Also includes Windows 10 Server.
+ VERSION_WIN10_TH2, // Threshold 2: Version 1511, Build 10586.
+ VERSION_WIN_LAST, // Indicates error condition.
};
// A rough bucketing of the available types of versions of Windows. This is used