diff --git a/webrtc/test/fuzzers/BUILD.gn b/webrtc/test/fuzzers/BUILD.gn
index 9179d05..9839a46 100644
--- a/webrtc/test/fuzzers/BUILD.gn
+++ b/webrtc/test/fuzzers/BUILD.gn
@@ -189,4 +189,36 @@
       "../../media:media",
     ]
   }
+
+  webrtc_fuzzer_test("sdp_parser_fuzzer") {
+    sources = [
+      "sdp_parser_fuzzer.cc",
+    ]
+    deps = [
+      "../../api:libjingle_peerconnection",
+    ]
+    seed_corpus = "corpora/sdp-corpus"
+  }
+
+  webrtc_fuzzer_test("stun_parser_fuzzer") {
+    sources = [
+      "stun_parser_fuzzer.cc",
+    ]
+    deps = [
+      "../../p2p:rtc_p2p",
+    ]
+    seed_corpus = "corpora/stun-corpus"
+    dict = "corpora/stun.tokens"
+  }
+
+  webrtc_fuzzer_test("stun_validator_fuzzer") {
+    sources = [
+      "stun_validator_fuzzer.cc",
+    ]
+    deps = [
+      "../../p2p:rtc_p2p",
+    ]
+    seed_corpus = "corpora/stun-corpus"
+    dict = "corpora/stun.tokens"
+  }
 }
diff --git a/webrtc/test/fuzzers/sdp_parser_fuzzer.cc b/webrtc/test/fuzzers/sdp_parser_fuzzer.cc
new file mode 100644
index 0000000..f21c991
--- /dev/null
+++ b/webrtc/test/fuzzers/sdp_parser_fuzzer.cc
@@ -0,0 +1,25 @@
+/*
+ *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include <stddef.h>
+#include <stdint.h>
+
+#include "webrtc/api/jsepsessiondescription.h"
+
+namespace webrtc {
+void FuzzOneInput(const uint8_t* data, size_t size) {
+  std::string message(reinterpret_cast<const char*>(data), size);
+  webrtc::SdpParseError error;
+
+  std::unique_ptr<webrtc::SessionDescriptionInterface> sdp(
+      CreateSessionDescription("offer", message, &error));
+}
+
+}  // namespace webrtc
diff --git a/webrtc/test/fuzzers/stun_parser_fuzzer.cc b/webrtc/test/fuzzers/stun_parser_fuzzer.cc
new file mode 100644
index 0000000..02f10b1
--- /dev/null
+++ b/webrtc/test/fuzzers/stun_parser_fuzzer.cc
@@ -0,0 +1,28 @@
+/*
+ *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include <stddef.h>
+#include <stdint.h>
+
+#include "webrtc/p2p/base/stun.h"
+
+namespace webrtc {
+void FuzzOneInput(const uint8_t* data, size_t size) {
+  const char* message = reinterpret_cast<const char*>(data);
+
+  // Normally we'd check the integrity first, but those checks are
+  // fuzzed separately in stun_validator_fuzzer.cc. We still want to
+  // fuzz this target since the integrity checks could be forged by a
+  // malicious adversary who receives a call.
+  std::unique_ptr<cricket::IceMessage> stun_msg(new cricket::IceMessage());
+  rtc::ByteBufferReader buf(message, size);
+  stun_msg->Read(&buf);
+}
+}  // namespace webrtc
diff --git a/webrtc/test/fuzzers/stun_validator_fuzzer.cc b/webrtc/test/fuzzers/stun_validator_fuzzer.cc
new file mode 100644
index 0000000..1f919f5
--- /dev/null
+++ b/webrtc/test/fuzzers/stun_validator_fuzzer.cc
@@ -0,0 +1,23 @@
+/*
+ *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include <stddef.h>
+#include <stdint.h>
+
+#include "webrtc/p2p/base/stun.h"
+
+namespace webrtc {
+void FuzzOneInput(const uint8_t* data, size_t size) {
+  const char* message = reinterpret_cast<const char*>(data);
+
+  cricket::StunMessage::ValidateFingerprint(message, size);
+  cricket::StunMessage::ValidateMessageIntegrity(message, size, "");
+}
+}  // namespace webrtc
