Revision: 17673
          http://sourceforge.net/p/edk2/code/17673
Author:   zwei4
Date:     2015-06-19 08:56:14 +0000 (Fri, 19 Jun 2015)
Log Message:
-----------
Fixed potential security issue introduced by SmramCpuNvs variable.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Shifei Lu <[email protected]>
Reviewed-by: David Wei <[email protected]>

Modified Paths:
--------------
    branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc
    branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc
    branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformPkgX64.dsc
    
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmramSaveInfoHandlerSmm/SmramSaveInfoHandlerSmm.c
    
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmramSaveInfoHandlerSmm/SmramSaveInfoHandlerSmm.inf

Modified: branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc
===================================================================
--- branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc        
2015-06-19 08:27:35 UTC (rev 17672)
+++ branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc        
2015-06-19 08:56:14 UTC (rev 17673)
@@ -872,6 +872,9 @@
   gEfiCpuTokenSpaceGuid.PcdCpuHotPlugDataAddress|0
   gEfiCpuTokenSpaceGuid.PcdCpuCallbackSignal|0
   gEfiCpuTokenSpaceGuid.PcdCpuConfigContextBuffer|0
+  gEfiVLVTokenSpaceGuid.PcdCpuLockBoxDataAddress|0
+  gEfiVLVTokenSpaceGuid.PcdCpuSmramCpuDataAddress|0
+  gEfiVLVTokenSpaceGuid.PcdCpuLockBoxSize|0
 
 [Components.IA32]
 

Modified: branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc
===================================================================
--- branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc  2015-06-19 
08:27:35 UTC (rev 17672)
+++ branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc  2015-06-19 
08:56:14 UTC (rev 17673)
@@ -874,6 +874,9 @@
   gEfiCpuTokenSpaceGuid.PcdCpuHotPlugDataAddress|0
   gEfiCpuTokenSpaceGuid.PcdCpuCallbackSignal|0
   gEfiCpuTokenSpaceGuid.PcdCpuConfigContextBuffer|0
+  gEfiVLVTokenSpaceGuid.PcdCpuLockBoxDataAddress|0
+  gEfiVLVTokenSpaceGuid.PcdCpuSmramCpuDataAddress|0
+  gEfiVLVTokenSpaceGuid.PcdCpuLockBoxSize|0
 
 [Components.IA32]
 

Modified: branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformPkgX64.dsc
===================================================================
--- branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformPkgX64.dsc   2015-06-19 
08:27:35 UTC (rev 17672)
+++ branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformPkgX64.dsc   2015-06-19 
08:56:14 UTC (rev 17673)
@@ -874,6 +874,9 @@
   gEfiCpuTokenSpaceGuid.PcdCpuHotPlugDataAddress|0
   gEfiCpuTokenSpaceGuid.PcdCpuCallbackSignal|0
   gEfiCpuTokenSpaceGuid.PcdCpuConfigContextBuffer|0
+  gEfiVLVTokenSpaceGuid.PcdCpuLockBoxDataAddress|0
+  gEfiVLVTokenSpaceGuid.PcdCpuSmramCpuDataAddress|0
+  gEfiVLVTokenSpaceGuid.PcdCpuLockBoxSize|0
 
 [Components.IA32]
 

Modified: 
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmramSaveInfoHandlerSmm/SmramSaveInfoHandlerSmm.c
===================================================================
--- 
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmramSaveInfoHandlerSmm/SmramSaveInfoHandlerSmm.c
    2015-06-19 08:27:35 UTC (rev 17672)
+++ 
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmramSaveInfoHandlerSmm/SmramSaveInfoHandlerSmm.c
    2015-06-19 08:56:14 UTC (rev 17673)
@@ -3,7 +3,7 @@
 
   This driver is for ECP platforms.
 
-  Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>
                                                                                
    
 
   This program and the accompanying materials are licensed and made available 
under
@@ -36,6 +36,7 @@
 #include <Protocol/SmmSwDispatch.h>
 #include <Protocol/SmmReadyToLock.h>
 #include <Protocol/SmmControl.h>
+#include <Guid/Vlv2DeviceRefCodePkgTokenSpace.h>
 
 #define SMM_FROM_SMBASE_DRIVER        0x55
 #define SMM_FROM_CPU_DRIVER_SAVE_INFO 0x81
@@ -70,29 +71,15 @@
   IN  EFI_SMM_SW_DISPATCH_CONTEXT   *DispatchContext
   )
 {
-  EFI_STATUS Status;
-  UINT64     VarData[3];
-  UINTN      VarSize;
-
   ASSERT (DispatchContext != NULL);
   ASSERT (DispatchContext->SwSmiInputValue == SMM_FROM_SMBASE_DRIVER);
 
   if (!mLocked && IoRead8 (mSmiDataRegister) == SMM_FROM_CPU_DRIVER_SAVE_INFO) 
{
-    VarSize = sizeof (VarData);
-    Status = gRT->GetVariable (
-                    L"SmramCpuNvs",
-                    &mSmramCpuNvsHeaderGuid,
-                    NULL,
-                    &VarSize,
-                    VarData
-                    );
-    if (!EFI_ERROR (Status) && VarSize == sizeof (VarData)) {
       CopyMem (
-        (VOID *)(UINTN)(VarData[0]),
-        (VOID *)(UINTN)(VarData[1]),
-        (UINTN)(VarData[2])
+        (VOID *)(UINTN)(PcdGetEx64 (&gEfiVLVTokenSpaceGuid, 
PcdCpuLockBoxDataAddress)),
+        (VOID *)(UINTN)(PcdGetEx64 (&gEfiVLVTokenSpaceGuid, 
PcdCpuSmramCpuDataAddress)),
+        (UINTN)(PcdGetEx64 (&gEfiVLVTokenSpaceGuid, PcdCpuLockBoxSize))
         );
-    }
   }
 }
 

Modified: 
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmramSaveInfoHandlerSmm/SmramSaveInfoHandlerSmm.inf
===================================================================
--- 
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmramSaveInfoHandlerSmm/SmramSaveInfoHandlerSmm.inf
  2015-06-19 08:27:35 UTC (rev 17672)
+++ 
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmramSaveInfoHandlerSmm/SmramSaveInfoHandlerSmm.inf
  2015-06-19 08:56:14 UTC (rev 17673)
@@ -2,7 +2,7 @@
 #
 #  A helper driver to save information to SMRAM after SMRR is enabled.
 #
-#  Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>
 #                                                                              
    
 
 # This program and the accompanying materials are licensed and made available 
under
@@ -48,6 +48,7 @@
 [Packages]
   MdePkg/MdePkg.dec
   IntelFrameworkPkg/IntelFrameworkPkg.dec
+  Vlv2DeviceRefCodePkg/Vlv2DeviceRefCodePkg.dec
 
 [LibraryClasses]
   UefiDriverEntryPoint
@@ -62,6 +63,11 @@
   gEfiSmmControlProtocolGuid         ## CONSUMED
   gEfiSmmReadyToLockProtocolGuid     ## CONSUMED
 
+[Pcd.common]
+  gEfiVLVTokenSpaceGuid.PcdCpuLockBoxDataAddress
+  gEfiVLVTokenSpaceGuid.PcdCpuSmramCpuDataAddress
+  gEfiVLVTokenSpaceGuid.PcdCpuLockBoxSize
+  
 [Depex]
   gEfiSmmSwDispatchProtocolGuid AND
   gEfiSmmControlProtocolGuid


------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to