# Copyright 2016 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # Fuzzer dictionary targetting DNS responses. # Some 16-bit big-endian values. Useful in a number of fields. Includes # A, AAAA, and CNAME IDs, low values for record counts, and multiples of # lengths of A and AAAA data fields. "\x00\x00" "\x00\x01" "\x00\x02" "\x00\x03" "\x00\x04" "\x00\x05" "\x00\x08" "\x00\x0C" "\x00\x10" "\x00\x1C" "\x00\x20" "\x00\x30" # Some encoded domain names. "\x03foo\x00" "\x03foo\x03com\x00" "\x01a\x03foo\x03com\x00" "\x03bar\x00" "\x03foo\x05local\x00" "\x03bar\x05local\x00" # Message headers (Without message ID field). "\x81\x80\x00\x01\x00\x01\x00\x00\x00\x00" # Truncated message, requiring TCP fallback. "\x83\x80\x00\x01\x00\x01\x00\x00\x00\x00" # Varying number of answers "\x81\x80\x00\x01\x00\x00\x00\x00\x00\x00" "\x81\x80\x00\x01\x00\x02\x00\x00\x00\x00" "\x81\x80\x00\x01\x00\x10\x00\x00\x00\x00" # MDNS headers (ID=0, no questions) "\x00\x00\x81\x80\x00\x00\x00\x01\x00\x00\x00\x00" "\x00\x00\x81\x80\x00\x00\x00\x02\x00\x00\x00\x00" "\x00\x00\x81\x80\x00\x00\x00\x10\x00\x00\x00\x00" # Type suffixes - appear after domain name. # A "\x00\x01\x00\x01" # AAAA "\x00\x1c\x00\x01" # CNAME "\x00\x05\x00\x01" # TXT "\x00\x10\x00\x01" # NSEC "\x00\x2f\x00\x01" # PTR "\x00\x0c\x00\x01" # SRV "\x00\x21\x00\x01" # Various-type requests for foo and foo.com. "\x03foo\x00\x00\x01\x00\x01" "\x03foo\x00\x00\x1c\x00\x01" "\x03foo\x00\x00\x05\x00\x01" "\x03foo\x00\x00\x10\x00\x01" "\x03foo\x03com\x00\x00\x01\x00\x01" "\x03foo\x03com\x00\x00\x1c\x00\x01" "\x03foo\x03com\x00\x00\x05\x00\x01" "\x03foo\x03com\x00\x00\x10\x00\x01" # All of the answers below are missing the name field, which should appear # first. # A answer suffixes, two different IP and TTLs. "\x00\x01\x00\x01\x00\x00\x00\x00\x00\x04\x01\x02\x03\x04" "\x00\x01\x00\x01\x00\x00\x00\xFF\x00\x04\x02\x03\x04\x05" # AAAA answer suffixes, two different IPs and TTLs. "\x00\x1C\x00\x01\x00\x00\x00\x00\x00\x08\x01\x02\x03\x04\x05\x06\x07\x08" "\x00\x1C\x00\x01\x00\x00\x00\xFF\x00\x08\x02\x03\x04\x05\x06\x07\x08\x09" # CNAME answer suffixes, first two truncated as well. "\x00\x05\x00\x01\x00\x00\x00\xFF" "\x00\x05\x00\x01\x00\x00\x00\xFF\x00\x05" "\x00\x05\x00\x01\x00\x00\x00\xFF\x00\x05\x03foo\x00" "\x00\x05\x00\x01\x00\x00\x00\xFF\x00\x05\x03bar\x00" "\x00\x05\x00\x01\x00\x00\x00\xFF\x00\x09\x03foo\x03com\x00" # TXT answer suffixes "\x00\x10\x00\x01\x00\x00\x00\x00\x00\x04\x03foo" "\x00\x10\x00\x01\x00\x00\x00\xFF\x00\x04\x03bar" # NSEC answer suffix "\x00\x2f\x00\x01\x00\x00\x00\x00\x00\x06\xc0\x0c\x00\x02\x00\x08" # DNS strings "\x03foo" "\x04text" "\x19arbitrarily longer string" # This part has been generated with testing/libfuzzer/dictionary_generator.py # using net_host_resolver_impl_fuzzer binary, RFC 1034 and RFC 1035. "EXPIRE" "all" "code" "QNAME=ISI.EDU.," "chain" "C.ISI.EDU," "C.ISI.EDU." "results" "existing" "INTRODUCTION" "52.0.0.10.IN-ADDR.ARPA." "QCLASS" "[RFC-799]" "follow" "XX.LCS.MIT.EDU." "(which" "C.ISI.EDU:" "content" "A.B.X," "pointing" "zone" "A.B.C.D" "CPU" "(RCODE)" "send" "IN-ADDR.ARPA" "0" "Host" "program" "under" "\"*.X\"," "exit." "resources" "TOPS20" "labels" "string" "advantage" "returning" "very" "none" "C.ISI.EDU)" "AXFR" "YALE.ARPA." "difference" "Experimental" "entire" "did" "supports" "list" "large" "CNAME," "-1" "delegate" "small" "ASCII" "C." "M." "YALE.EDU." "direct" "past" "likely" "\"A\"" "\"IN-ADDR.ARPA\"." "XX.LCS.MIT.EDU," "HINFO" "RFC-1031," "IN," "particular," "Z." "errors" "appear" "ARPANET" "QNAME=65.0.6.26.IN-ADDR.ARPA.,QCLASS=IN,QTYPE=PTR" "QCLASS=*" "section" "51.0.0.10.IN-ADDR.ARPA." "children" "current" "DEC-2060" "waiting" "version" "above" "TTL" "[RFC-742]" "shared" "method" "QTYPE=NS" "FTP" "*.A.X.COM" "hash" "EDU." "exchange" "QTYPE=CNAME," "never" "[RFC-" "here" "\"HOSTNAME" "RFC-793," "address" "SNAME," "path" "Distribution" "\"NAME/FINGER\"," "change" "search" "SRI-NIC.ARPA." "[RFC-952," "SRI-NIC.ARPA," "MB" "receive" "changed" "SRI-NIC.ARPA:" "prior" "amount" "QTYPE=CNAME" "RFC-822." "here." "published" "NOT" "Serial" "J.," "error," "MX" "error." "composed" "named" "via" "useful" "addresses" "case." "ARPA" "When" "private" "*.X.COM" "total" "gateway" "select" "Status" "SRI-NIC.ARPA" "use" "SNAME" "from" "would" "to" "positive" "contains" "(QCLASS)" "two" "[RFC-1032]." "(DNS)," "TELNET," "call" "B.X," "memory" "type" "until" "used." "more" "sort" "QNAME=SIR-NIC.ARPA," "MILNET" "name." "Domain" "[IEN-116," "PTR)." "HOSTS.TXT," "COMSAT," "EXPIRE." "known" "cases" "must" "EVEN" "account" "include" "QCLASS=IN." "QNAME=USC-ISIC.ARPA.," "this" "CNAME." "work" "EDU," "can" "evolved" "EDU" "following" "original" "root" "example" "F." "history" "type." "stream" "Organizations" "process" "pieces" "high" "minimum" "[RFC-953]" "numbers" "want" "allowed" "serial" "keep" "IEN-116," "returned" "class." "information" "class," "end" "goal" "[RFC-1033]." "divided" "holds" "write" "located" "NOSC" "VENERA.ISI.EDU.|" "plus" "Z.X" "A" "map" "[RFC-810]" "QTYPE." "may" "after" "Request" "containing" "RFC-1032," "date" "such" "[RFC-1035]." "data" "response" "types" "\"A" "a" "FTP," "All" "short" "attempt" "IF" "After" "UDEL.EDU." "SRI," ")" "RFC-953," "so" "TELNET)." "MIT.EDU" "order" "(HOSTS.TXT)" "ACHILLES" "ISI.EDU" "MIL" "over" "move" "vary" "Z.X)," "RFC-830," "through" "V." "during" "still" "pointer" "its" "STYPE" "before" "25" "style" "HAS" "group" "RR" "HOSTMASTER.SRI-NIC.ARPA." "65.0.6.26.IN-ADDR.ARPA," "fix" "65.0.6.26.IN-ADDR.ARPA." "28" "actually" "RD" "NAMES" "YALE" "policy" "mail" "QNAME=BRL.MIL," "it." "them" "good" "return" "greater" "combination" "B.C.D," "matches" "RA," "ACM," "9" "ARPA." "they" "half" "not" "However," "parsing" "[RFC-973]" "instructions" "OPCODE=SQUERY,RESPONSE" "term" "name" "RFC," "always" "Authority" "THIS" "RFC." "mode" "timeout" "RFC-799," "found" "|" "mean" "RESOLVERS" "status" "domain" "From" "Network" "QTYPE," "series" "SOME" "idea" "related" "CNAME" "UDEL" "happen" "beyond" "RFC-882" "special" "out" "try" "E." "space" "open" "since" "stub" "L." "MINIMUM" "RFC-768," "RDATA" "get" "cause" "REFRESH," "HOSTMASTER@SRI-NIC.ARPA." "SERVERS" "This" "SLIST:" "free" "RFC" "reason" "base" "put" "byte" "RFC-952" "received." "generate" "SLIST," "RFC-883," "definition" "DATA." "thread" "YALE-BULLDOG.ARPA." "could" "transition" "QCLASS," "times" "MIT" "length" "place" "ICS.UCI" "HOSTMASTER@SRI-NIC.ARPA" "first" "origin" "already" "RD." "CONFIGURED" "number" "one" "RFC-" "Start" "ISI" "RFC-953." "construct" "another" "owner" "message" "QTYPE=*" "Local" "CSNET" "size" "doesn't" "given" "\"" "X." "A.ISI.EDU" "service" "set," "introduction" "unknown" "top" "system" "least" "parallel" "their" "intermediate" "master" "listed" "passed" "QTYPE" "ignored." "scheme" "Data" "store" "gives" "BBN" "that" "completed" "UDP" "XX" "part" "too" "RFC-953]." "(CNAME)" "translation" "copy" "than" "population" "wide" "Set" "K." "target" "DNS," "16" "was" "require" "second" "matter" "See" "classes" "were" "[RFC-1031]" "result" "and" "Information" "[RFC-805]" "QNAME" "[RFC-811]" "[RFC-1032]" "say" "have" "need" "Mail" "1" "null" "RETRY" "any" "contents" "|(SRI-NIC.ARPA," "SOMEONE" "RESOURCE" "73.0.0.26.IN-ADDR.ARPA." "min" "DARPA" "database." "responsible" "able" "RFC-812," "mechanism" "client" "also" "(AA)" "contact" "take" "which" "MIL." "MIL," "=" "UCI" "added" "multiple" "Name" "USC-ISIC.ARPA." "QCLASS=IN," "track" "object" "most" "detect" "connected" "services" "The" "]" "model" "domain." "D." "RFC-1010," "D," "[RFC-1010]" "RFC-805," "AA," "sometimes" "Some" "VAXA.ISI.EDU." "QNAME=ISI.EDU," "MG)." "error" "If" "fact" "QNAME=SRI-NIC.ARPA," "particularly" "text" "supported" "terminate" "VENERA" "attempts" "relation" "RFC-1033," "Under" "|(VAXA.ISI.EDU,VENERA.ISI.EDU," "USC-ISIC.ARPA," "find" "cache." "Z" "based" "advanced" "RECORDS" "implementation" "(" "cache" "[RFC-768]" "outside" "should" "XX.LCS.MIT.EDU" "only" "PVM@ISI.EDU." "RETRY," "local" "do" "[RFC-1031]." "means" "there" "While" "cannot" "new" "2" "LOUIE.UDEL.EDU." "IN-ADDR" "processes" "resource" "A.ISI" "cached" "NIC" "generally" "(via" "ROME.UCI" "Zones" "RFC-920," "J." "RFC-920." "common" "mapped" "including" "where" "valid" "set" "For" "configured" "we" "QNAME=SRI-NIC.ARPA.," "up" "relative" "depends" "individual" "are" "RFC-883]." "close" "A.ISI.EDU." "said" "A.ISI.EDU)" "purpose" "TCP" "label" "PC" "3" "unable" "between" "probably" "boundary" "C.D," "numerous" "across" "available" "C" "terms" "ability" "parent" "RFC-830]." "LCS.MIT.EDU" "negotiated" "REFRESH" "UNIX" "CH)." "key" "March" "configuration" "come" "classes." "AND" "both" "RFC-1002," "OPCODE=SQUERY" "last" "LCS" "deals" "PDP-11/70" "equal" "against" "ISI.EDU." "MAILB" "[RFC-974]" "opcode" "RFC-742," "C.ISI.EDU" "expression" "can't" "load" "among" "[RFC-920]" "point" "simple" "had" "period" "header" "[IEN-116]" "DNS." "52.0.0.10.IN-ADDR.ARPA" "table" "poll" "UMN-REI-UC.ARPA." "[" "[RFC-883]" "RFC-974," "RFC-1002" "addition" "P." "create" "S.," "political" "copies" "been" "." "Early" "Introduction" "describes" "expected" "empty" "RA" "SLIST." "CH" "(RD)" "VENERA.ISI.EDU." "with" "SRI" "PVM@ISI.EDU" "[RFC-821]" "Using" "an" "case" "exception" "has" "NAME" "these" "appearance" "value" "will" "while" "replaced" "many" "loop" "SOA," "RFC-1001," "\"NICNAME/WHOIS\"," "is" "CACHE" "it" "encountered" "FACILITIES" "in" "|(XX.LCS.MIT.EDU," "RESPONSE," "if" "SOA" "binary" "different" "perhaps" "[RFC-819]" "perform" "make" "hostname" "same" "orders" "QNAME." "QNAME," "parts" "widely" "of:" "several" "Types" "(NE)." "development" "fairly" "used" "Institute" "IP" "\"." "CONCEPTS" "effect" "user" "IN" "infinite" "frequently" "ID" "recent" "task" "SCENARIO" "database" "makes" "depending" "well" "It" "HOSTS.TXT" "without" "thought" "edge" "Names" "RFC-811," "In" "organization" "the" "ACC.ARPA." "left" "United" "protocol" "less" "being" "-" "rest" "A," "Access" "CSNET." "stored" "RFC-882," "Internet" "followed" "(QTYPE)," "previous" "RFC-952," "|ACHILLES.MIT.EDU)" "majority" "XX.COM." "|(C.ISI.EDU,SRI-NIC.ARPA" "character" "capabilities" "(RDATA)" "source" "add" "internal" "TTL)" "4" "Although" "RCODE=NE" "5" "save" "administrative" "remaining" "match" "build" "around" "ACHILLES.MIT.EDU." "format" "read" "Of" "possible" "required." "alias" "ISIC.ARPA," "integer" "bit" "VAXA.ISI" "found," "desire" "SLIST" "sorting" "OPCODE=SQUERY," "OF" "AUTHORITY" "server" "specific" "popular" "output" "OS" "Before" "STATUS" "DOMAIN" "because" "old" "often" "deal" "sequence" "RFC-821," "SRI-NIC.ARPA.|" "Since" "some" "System" "growth" "equivalent" "examples" "loaded" "INCORRECTLY" "unless" "reasons" "TCP/IP" "happens" "ignore" "for" "W." "RFC-883" "X.COM" "avoid" "QTYPE=MX" "does" "allocate" "COM" "assuming" "BRL" "PTR" "[RFC-793]" "refer" "be" "example," "MIT.EDU." "broken" "host" "become" "by" "SRI-NIC" "on" "about" "actual" "socket" "SCLASS" "RFC-810," "of" "FTP)" "US" "compatible" "extensions" "\"A\"." "UK" "referred" "or" "ACC" "SBELT." "SBELT," "No" "(SBELT)" "into" "within" "A.X.COM." "Two" "A.X.COM," "negative" "included" "REFERENCES" "determine" "USC-ISIC.ARPA" "file." "[RFC-1001]" "[RFC-830]" "RESPONSE" "fast" "additional" "[RFC-812]" "transfer" "support" "*" "question" "NE" "long" "class" "start" "SERIAL" "TTL," "User" "A.X.COM" "forward" "RD," "\"4.3.2.1.IN-ADDR.ARPA\"." "NS" "sections" "function" "RR." "RR," "QTYPE=A" "complete" "form" "MEMO" "but" "back" "failure" "link" "DNS" "SNAME." "encoded" "line" "trying" "true" "TCP/UDP" "[RFC-1033]" "count" "SBELT" "made" "[RFC-952]" "algorithm" "used," "(NIC)" "official" "this," "classes:" "experimental" "ISI.EDU," "limit" "critical" "VAXA" "distribution" "NETBIOS" "similar" "called" "[RFC-1001," "delete" "CIC" "USC-" "units" "ad" "RECORDS," "defined" "request" "specified" "influence" "general" "To" "as" "exist" "at" "file" "MX." "check" "physical" "X.COM," "functions" "QNAME=USC-ISIC.ARPA," "no" "[RFC-882," "when" "QTYPE=MX," "virtual" "details." "field" "RFC-952." "other" "role" "test" "you" "(QNAME)," "IP/TCP" "formats" "AA" "requested" "[RFC-974" "SPACE" "QNAME=SIR-NIC.ARPA.," "RFC-819," "important" "variable" "[RFC-882]" "[RFC-1002]" "structure" "\"DOD" "BIBLIOGRAPHY" "lead" "using" "US." "\"MILNET" "103.0.3.26.IN-ADDR.ARPA." "together" "An" "As" "RFC-973," "time" "failures" "starting" "having" "V" "FOO.F.ISI.ARPA," "Assuming" "[RFC-1034]." "calculate" "IMPLEMENTATION" "Not" "ANCOUNT" "Secondary" "@" "ALL" "P" "TXT-DATA" "namespaces" "entries" "RMAILBX" "prevent" "QDCOUNT" "[RFC-1010]." "EMAILBX" "IN-" "OPCODE=IQUERY," "MX)" "implemented" "port" "Available" "ID=997" "[RFC-1034]," "\"VENERA.ISI.EDU\";" "OPCODE" "MILNET-GW.ISI.EDU." ";" "body" "52.0.2.10.IN-ADDR.ARPA." "reported" "objects" "strong" "UNIX\"" "MD" "MF" "QNAME=10.IN-ADDR.ARPA." "serialize" "ISI-MAILBOXES.TXT" "X," "Too" "77.0.0.10.IN-ADDR.ARPA." "spawned" "exception." "permitted" "RDLENGTH" "few" "duplicate" "QTYPE=PTR," "CURLEY" "MD," "F" "[RFC-974]." "MGMNAME" "validity" "GW.LCS.MIT.EDU," "Time" "(back" "\\DDD" "10.IN-ADDR.ARPA." "closing" "requested," "reserved" "EXCHANGE." "HIS" "reject" "ensure" "(MD)" "QTYPES" "PROTOCOL" "description" "26.IN-ADDR.ARPA" "NSCOUNT" "(MR)" "derived" "Foreign" "OWN" "26.IN-ADDR.ARPA." "TC" "map." "cases." "PREFERENCE" "don't" "VENERA.ISI.EDU" "held" "X" "below:" "$INCLUDE." "forms" "MR)" "VAXA.ISI.EDU" "main" "pending" "timestamp" "Ignoring" "MADNAME." "\\" "$ORIGIN" "\"IBM-PC" "document" "$INCLUDE" "SERVER" "ADDRESS" "identifier" "Check" "reduce" "static" "expect" "MASTER" "GW.ISI.EDU." "(QNAME)." "is:" "GW.ISI.EDU," "F.ISI.ARPA," "F.ISI.ARPA." "time." "PTRDNAME" "HOSTMASTER@SRI-" "(STATUS)" "possibility" "|QTYPE=A," "(MINFO)" "initialize" "beginning" "compression" "(MG)" "created" "QCLASS." "encoding" "(HS)" "MNAME" "ports" "QNAME=VENERA.ISI.EDU" "(IN)" "Response" "KNOWS." "|QR|" "VAXA.ISI.EDU," "Reserved" "14" "1)" "SOA." "ARCOUNT" "Other" "RCODE" "NEWNAME" "22.0.2.10.IN-ADDR.ARPA." "With" "CLASS" "begin" "(MF)." "Common" "" "Responses" "EGP." "average" "R" "QNAME=6.0.0.10.IN-ADDR.ARPA," "WKS" "SYSTEM," "ARPANET," "MINFO" "participate" "DEFINITIONS" "failed" "[RFC-1034]" "mixture" "SPECIFICATION" "THE" "MILNET." "MILNET-" "" "expired" "member" "Address" "DDD." "MB." "NS," "I" "MR" "read," "OPCODE=RESPONSE," "person" "entry" "WITHIN" "LARRY" "front" "tables" "loading" "unsigned" "aspects" "D" "CHAOS" "WHICH" "(IQUERY)" "QCLASS=IN" "6.0.0.10.IN-ADDR.ARPA." "S." "QTYPE=MAILB" "HS" "SUPPORT" "A.X," "STOOGES" "discarded" "done." "literals" "X.Y" "However" "/" "(SLIST)." "X.Y," "integer." "ARPA," "who" "18.IN-ADDR.ARPA." "B.X" "expansion" "OS," "offset" "F.ISI.ARPA" "GGP" "O" "Communications" "RR)," "location" "MOE" "range" "value." "Message" "block" "$INCLUDE," "guard" "[]" "QR" "CRLF" "Error" "ERRORS-TO:" "he" "default" "MESSAGES" "signed" "storing" "MULTICS.MIT.EDU." "New" "NULL" "application" "OFFSET" "holding" "TXT" "NSDNAME" "PROTOCOL=TCP" "UDP." "UDP," "RNAME" "GW.LCS.MIT.EDU." "(EXPERIMENTAL)" "\\X" "MAIL" "NIC.ARPA"