浏览代码

Validate the RSA key size received when parsing INTRODUCE2 cells.

Fixes bug 15600; reported by skruffy
Yawning Angel 9 年之前
父节点
当前提交
49ddd92c11
共有 2 个文件被更改,包括 15 次插入0 次删除
  1. 5 0
      changes/bug15600
  2. 10 0
      src/or/rendservice.c

+ 5 - 0
changes/bug15600

@@ -0,0 +1,5 @@
+  o Major bugfixes (security, hidden service):
+    - Fix an issue that would allow a malicious client to trigger
+      an assertion failure and halt a hidden service. Fixes
+      bug 15600; bugfix on 0.2.1.6-alpha. Reported by "skruffy".
+

+ 10 - 0
src/or/rendservice.c

@@ -1810,6 +1810,16 @@ rend_service_parse_intro_for_v2(
 
     goto err;
   }
+  if (128 != crypto_pk_keysize(extend_info->onion_key)) {
+    if (err_msg_out) {
+      tor_asprintf(err_msg_out,
+                   "invalid onion key size in version %d INTRODUCE%d cell",
+                   intro->version,
+                   (intro->type));
+    }
+
+    goto err;
+  }
 
   ver_specific_len = 7+DIGEST_LEN+2+klen;