[하루한줄] Sitecore Experience Platform Pre-Auth RCE - CVE-2021-42237
URL
Sitecore Experience Platform Pre-Auth RCE - CVE-2021-42237
Target
- Sitecore XP 7.5 Initial Release - Sitecore XP 7.5 Update-2
- Sitecore XP 8.0 Initial Release - Sitecore XP 8.0 Update-7
- Sitecore XP 8.1 Initial Release - Sitecore XP 8.1 Update-3
- Sitecore XP 8.2 Initial Release - Sitecore XP 8.2 Update-7
Explain
Enterprise CMS (Content Management System)인 Sitecore XP에서 원격 코드 실행 취약점이 발견되었습니다. Sitecore XP는 소비자 데이터, 통계, 마케팅 자동화등의 기능을 가지고 있는 툴입니다. Sitecore XP는 .NET으로 개발되었는데 insecure deserialization 취약점이 있는 NetDataContractSerializer
을 사용해 원격 커멘드 실행 취약점이 발생합니다.
POST request의 XML node에 따라 그에 맞는 deserialization 함수가 호출됩니다. 그중 DeserializeParameters
는 NetDataContractSerializer
를 사용하는 insecure desrialization 패턴이 있습니다.
private static void DeserializeParameters(XmlReader reader, Dictionary<string, object> parameters)
{
reader.ReadStartElement("parameters");
bool flag = !reader.EOF;
while (flag)
{
if (reader.NodeType == XmlNodeType.Element && reader.Name == "parameter")
{
reader.MoveToContent();
string attribute = reader.GetAttribute("name");
if (attribute != null)
{
for (bool flag2 = reader.Read(); flag2 && reader.NodeType != XmlNodeType.Element; flag2 = reader.Read())
{
}
object value = new NetDataContractSerializer().ReadObject(reader, verifyObjectName: true);
parameters.Add(attribute, value);
}
}
flag = reader.Read();
}
}
본 글은 CC BY-SA 4.0 라이선스로 배포됩니다. 공유 또는 변경 시 반드시 출처를 남겨주시기 바랍니다.