forked from future-architect/vuls
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathen.go
9341 lines (9339 loc) · 593 KB
/
en.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
package cwe
// Cwe has CWE information
type Cwe struct {
CweID string `json:"cweID"`
Name string `json:"name"`
Description string `json:"description"`
ExtendedDescription string `json:"extendedDescription"`
Lang string `json:"-"`
}
// CweDictEn is the Cwe dictionary (https://cwe.mitre.org/data/xml/cwec_latest.xml.zip)
var CweDictEn = map[string]Cwe{
"1004": {
CweID: "1004",
Name: "Sensitive Cookie Without 'HttpOnly' Flag",
Description: "The software uses a cookie to store sensitive information, but the cookie is not marked with the HttpOnly flag.",
ExtendedDescription: "The HttpOnly flag directs compatible browsers to prevent client-side script from accessing cookies. Including the HttpOnly flag in the Set-Cookie HTTP response header helps mitigate the risk associated with Cross-Site Scripting (XSS) where an attacker's script code might attempt to read the contents of a cookie and exfiltrate information obtained. When set, browsers that support the flag will not reveal the contents of the cookie to a third party via client-side script executed via XSS.",
Lang: "en",
},
"1007": {
CweID: "1007",
Name: "Insufficient Visual Distinction of Homoglyphs Presented to User",
Description: "The software displays information or identifiers to a user, but the display mechanism does not make it easy for the user to distinguish between visually similar or identical glyphs (homoglyphs), which may cause the user to misinterpret a glyph and perform an unintended, insecure action.",
ExtendedDescription: "",
Lang: "en",
},
"102": {
CweID: "102",
Name: "Struts: Duplicate Validation Forms",
Description: "The application uses multiple validation forms with the same name, which might cause the Struts Validator to validate a form that the programmer does not expect.",
ExtendedDescription: "If two validation forms have the same name, the Struts Validator arbitrarily chooses one of the forms to use for input validation and discards the other. This decision might not correspond to the programmer's expectations, possibly leading to resultant weaknesses. Moreover, it indicates that the validation logic is not up-to-date, and can indicate that other, more subtle validation errors are present.",
Lang: "en",
},
"1021": {
CweID: "1021",
Name: "Improper Restriction of Rendered UI Layers or Frames",
Description: "The web application does not restrict or incorrectly restricts frame objects or UI layers that belong to another application or domain, which can lead to user confusion about which interface the user is interacting with.",
ExtendedDescription: "A web application is expected to place restrictions on whether it is allowed to be rendered within frames, iframes, objects, embed or applet elements. Without the restrictions, users can be tricked into interacting with the application when they were not intending to.",
Lang: "en",
},
"1022": {
CweID: "1022",
Name: "Use of Web Link to Untrusted Target with window.opener Access",
Description: "The web application produces links to untrusted external sites outside of its sphere of control, but it does not properly prevent the external site from modifying security-critical properties of the window.opener object, such as the location property.",
ExtendedDescription: "When a user clicks a link to an external site (\"target\"), the target=\"_blank\" attribute causes the target site's contents to be opened in a new window or tab, which runs in the same process as the original page. The window.opener object records information about the original page that offered the link. If an attacker can run script on the target page, then they could read or modify certain properties of the window.opener object, including the location property - even if the original and target site are not the same origin. An attacker can modify the location property to automatically redirect the user to a malicious site, e.g. as part of a phishing attack. Since this redirect happens in the original window/tab - which is not necessarily visible, since the browser is focusing the display on the new target page - the user might not notice any suspicious redirection.",
Lang: "en",
},
"1023": {
CweID: "1023",
Name: "Incomplete Comparison with Missing Factors",
Description: "The software performs a comparison between entities that must consider multiple factors or characteristics of each entity, but the comparison does not include one or more of these factors.",
ExtendedDescription: "An incomplete comparison can lead to resultant weaknesses, e.g., by operating on the wrong object or making a security decision without considering a required factor.",
Lang: "en",
},
"1024": {
CweID: "1024",
Name: "Comparison of Incompatible Types",
Description: "The software performs a comparison between two entities, but the entities are of different, incompatible types that cannot be guaranteed to provide correct results when they are directly compared.",
ExtendedDescription: "In languages that are strictly typed but support casting/conversion, such as C or C++, the programmer might assume that casting one entity to the same type as another entity will ensure that the comparison will be performed correctly, but this cannot be guaranteed. In languages that are not strictly typed, such as PHP or JavaScript, there may be implicit casting/conversion to a type that the programmer is unaware of, causing unexpected results; for example, the string \"123\" might be converted to a number type. See examples.",
Lang: "en",
},
"1025": {
CweID: "1025",
Name: "Comparison Using Wrong Factors",
Description: "The code performs a comparison between two entities, but the comparison examines the wrong factors or characteristics of the entities, which can lead to incorrect results and resultant weaknesses.",
ExtendedDescription: "This can lead to incorrect results and resultant weaknesses. For example, the code might inadvertently compare references to objects, instead of the relevant contents of those objects, causing two \"equal\" objects to be considered unequal.",
Lang: "en",
},
"103": {
CweID: "103",
Name: "Struts: Incomplete validate() Method Definition",
Description: "The application has a validator form that either does not define a validate() method, or defines a validate() method but does not call super.validate().",
ExtendedDescription: "If the code does not call super.validate(), the Validation Framework cannot check the contents of the form against a validation form. In other words, the validation framework will be disabled for the given form.",
Lang: "en",
},
"1037": {
CweID: "1037",
Name: "Processor Optimization Removal or Modification of Security-critical Code",
Description: "The developer builds a security-critical protection mechanism into the software, but the processor optimizes the execution of the program such that the mechanism is removed or modified.",
ExtendedDescription: "",
Lang: "en",
},
"1038": {
CweID: "1038",
Name: "Insecure Automated Optimizations",
Description: "The product uses a mechanism that automatically optimizes code, e.g. to improve a characteristic such as performance, but the optimizations can have an unintended side effect that might violate an intended security assumption.",
ExtendedDescription: "",
Lang: "en",
},
"1039": {
CweID: "1039",
Name: "Automated Recognition Mechanism with Inadequate Detection or Handling of Adversarial Input Perturbations",
Description: "The product uses an automated mechanism such as machine learning to recognize complex data inputs (e.g. image or audio) as a particular concept or category, but it does not properly detect or handle inputs that have been modified or constructed in a way that causes the mechanism to detect a different, incorrect concept.",
ExtendedDescription: "",
Lang: "en",
},
"104": {
CweID: "104",
Name: "Struts: Form Bean Does Not Extend Validation Class",
Description: "If a form bean does not extend an ActionForm subclass of the Validator framework, it can expose the application to other weaknesses related to insufficient input validation.",
ExtendedDescription: "",
Lang: "en",
},
"1041": {
CweID: "1041",
Name: "Use of Redundant Code",
Description: "The software has multiple functions, methods, procedures, macros, etc. that contain the same code.",
ExtendedDescription: "",
Lang: "en",
},
"1042": {
CweID: "1042",
Name: "Static Member Data Element outside of a Singleton Class Element",
Description: "The code contains a member element that is declared as static (but not final), in which its parent class element is not a singleton class - that is, a class element that can be used only once in the 'to' association of a Create action.",
ExtendedDescription: "",
Lang: "en",
},
"1043": {
CweID: "1043",
Name: "Data Element Aggregating an Excessively Large Number of Non-Primitive Elements",
Description: "The software uses a data element that has an excessively large number of sub-elements with non-primitive data types such as structures or aggregated objects.",
ExtendedDescription: "",
Lang: "en",
},
"1044": {
CweID: "1044",
Name: "Architecture with Number of Horizontal Layers Outside of Expected Range",
Description: "The software's architecture contains too many - or too few - horizontal layers.",
ExtendedDescription: "",
Lang: "en",
},
"1045": {
CweID: "1045",
Name: "Parent Class with a Virtual Destructor and a Child Class without a Virtual Destructor",
Description: "A parent class has a virtual destructor method, but the parent has a child class that does not have a virtual destructor.",
ExtendedDescription: "",
Lang: "en",
},
"1046": {
CweID: "1046",
Name: "Creation of Immutable Text Using String Concatenation",
Description: "The software creates an immutable text string using string concatenation operations.",
ExtendedDescription: "",
Lang: "en",
},
"1047": {
CweID: "1047",
Name: "Modules with Circular Dependencies",
Description: "The software contains modules in which one module has references that cycle back to itself, i.e., there are circular dependencies.",
ExtendedDescription: "",
Lang: "en",
},
"1048": {
CweID: "1048",
Name: "Invokable Control Element with Large Number of Outward Calls",
Description: "The code contains callable control elements that contain an excessively large number of references to other application objects external to the context of the callable, i.e. a Fan-Out value that is excessively large.",
ExtendedDescription: "",
Lang: "en",
},
"1049": {
CweID: "1049",
Name: "Excessive Data Query Operations in a Large Data Table",
Description: "The software performs a data query with a large number of joins and sub-queries on a large data table.",
ExtendedDescription: "",
Lang: "en",
},
"105": {
CweID: "105",
Name: "Struts: Form Field Without Validator",
Description: "The application has a form field that is not validated by a corresponding validation form, which can introduce other weaknesses related to insufficient input validation.",
ExtendedDescription: "Omitting validation for even a single input field may give attackers the leeway they need to compromise the application. Although J2EE applications are not generally susceptible to memory corruption attacks, if a J2EE application interfaces with native code that does not perform array bounds checking, an attacker may be able to use an input validation mistake in the J2EE application to launch a buffer overflow attack.",
Lang: "en",
},
"1050": {
CweID: "1050",
Name: "Excessive Platform Resource Consumption within a Loop",
Description: "The software has a loop body or loop condition that contains a control element that directly or indirectly consumes platform resources, e.g. messaging, sessions, locks, or file descriptors.",
ExtendedDescription: "",
Lang: "en",
},
"1051": {
CweID: "1051",
Name: "Initialization with Hard-Coded Network Resource Configuration Data",
Description: "The software initializes data using hard-coded values that act as network resource identifiers.",
ExtendedDescription: "",
Lang: "en",
},
"1052": {
CweID: "1052",
Name: "Excessive Use of Hard-Coded Literals in Initialization",
Description: "The software initializes a data element using a hard-coded literal that is not a simple integer or static constant element.",
ExtendedDescription: "",
Lang: "en",
},
"1053": {
CweID: "1053",
Name: "Missing Documentation for Design",
Description: "The product does not have documentation that represents how it is designed.",
ExtendedDescription: "",
Lang: "en",
},
"1054": {
CweID: "1054",
Name: "Invocation of a Control Element at an Unnecessarily Deep Horizontal Layer",
Description: "The code at one architectural layer invokes code that resides at a deeper layer than the adjacent layer, i.e., the invocation skips at least one layer, and the invoked code is not part of a vertical utility layer that can be referenced from any horizontal layer.",
ExtendedDescription: "",
Lang: "en",
},
"1055": {
CweID: "1055",
Name: "Multiple Inheritance from Concrete Classes",
Description: "The software contains a class with inheritance from more than one concrete class.",
ExtendedDescription: "",
Lang: "en",
},
"1056": {
CweID: "1056",
Name: "Invokable Control Element with Variadic Parameters",
Description: "A named-callable or method control element has a signature that supports a variable (variadic) number of parameters or arguments.",
ExtendedDescription: "",
Lang: "en",
},
"1057": {
CweID: "1057",
Name: "Data Access Operations Outside of Expected Data Manager Component",
Description: "The software uses a dedicated, central data manager component as required by design, but it contains code that performs data-access operations that do not use this data manager.",
ExtendedDescription: "",
Lang: "en",
},
"1058": {
CweID: "1058",
Name: "Invokable Control Element in Multi-Thread Context with non-Final Static Storable or Member Element",
Description: "The code contains a function or method that operates in a multi-threaded environment but owns an unsafe non-final static storable or member data element.",
ExtendedDescription: "",
Lang: "en",
},
"1059": {
CweID: "1059",
Name: "Insufficient Technical Documentation",
Description: "The product does not contain sufficient technical or engineering documentation (whether on paper or in electronic form) that contains descriptions of all the relevant software/hardware elements of the product, such as its usage, structure, architectural components, interfaces, design, implementation, configuration, operation, etc.",
ExtendedDescription: "",
Lang: "en",
},
"106": {
CweID: "106",
Name: "Struts: Plug-in Framework not in Use",
Description: "When an application does not use an input validation framework such as the Struts Validator, there is a greater risk of introducing weaknesses related to insufficient input validation.",
ExtendedDescription: "",
Lang: "en",
},
"1060": {
CweID: "1060",
Name: "Excessive Number of Inefficient Server-Side Data Accesses",
Description: "The software performs too many data queries without using efficient data processing functionality such as stored procedures.",
ExtendedDescription: "",
Lang: "en",
},
"1061": {
CweID: "1061",
Name: "Insufficient Encapsulation",
Description: "The software does not sufficiently hide the internal representation and implementation details of data or methods, which might allow external components or modules to modify data unexpectedly, invoke unexpected functionality, or introduce dependencies that the programmer did not intend.",
ExtendedDescription: "",
Lang: "en",
},
"1062": {
CweID: "1062",
Name: "Parent Class with References to Child Class",
Description: "The code has a parent class that contains references to a child class, its methods, or its members.",
ExtendedDescription: "",
Lang: "en",
},
"1063": {
CweID: "1063",
Name: "Creation of Class Instance within a Static Code Block",
Description: "A static code block creates an instance of a class.",
ExtendedDescription: "",
Lang: "en",
},
"1064": {
CweID: "1064",
Name: "Invokable Control Element with Signature Containing an Excessive Number of Parameters",
Description: "The software contains a function, subroutine, or method whose signature has an unnecessarily large number of parameters/arguments.",
ExtendedDescription: "",
Lang: "en",
},
"1065": {
CweID: "1065",
Name: "Runtime Resource Management Control Element in a Component Built to Run on Application Servers",
Description: "The application uses deployed components from application servers, but it also uses low-level functions/methods for management of resources, instead of the API provided by the application server.",
ExtendedDescription: "",
Lang: "en",
},
"1066": {
CweID: "1066",
Name: "Missing Serialization Control Element",
Description: "The software contains a serializable data element that does not have an associated serialization method.",
ExtendedDescription: "",
Lang: "en",
},
"1067": {
CweID: "1067",
Name: "Excessive Execution of Sequential Searches of Data Resource",
Description: "The software contains a data query against an SQL table or view that is configured in a way that does not utilize an index and may cause sequential searches to be performed.",
ExtendedDescription: "",
Lang: "en",
},
"1068": {
CweID: "1068",
Name: "Inconsistency Between Implementation and Documented Design",
Description: "The implementation of the product is not consistent with the design as described within the relevant documentation.",
ExtendedDescription: "",
Lang: "en",
},
"1069": {
CweID: "1069",
Name: "Empty Exception Block",
Description: "An invokable code block contains an exception handling block that does not contain any code, i.e. is empty.",
ExtendedDescription: "",
Lang: "en",
},
"107": {
CweID: "107",
Name: "Struts: Unused Validation Form",
Description: "An unused validation form indicates that validation logic is not up-to-date.",
ExtendedDescription: "It is easy for developers to forget to update validation logic when they remove or rename action form mappings. One indication that validation logic is not being properly maintained is the presence of an unused validation form.",
Lang: "en",
},
"1070": {
CweID: "1070",
Name: "Serializable Data Element Containing non-Serializable Item Elements",
Description: "The software contains a serializable, storable data element such as a field or member, but the data element contains member elements that are not serializable.",
ExtendedDescription: "",
Lang: "en",
},
"1071": {
CweID: "1071",
Name: "Empty Code Block",
Description: "The source code contains a block that does not contain any code, i.e., the block is empty.",
ExtendedDescription: "",
Lang: "en",
},
"1072": {
CweID: "1072",
Name: "Data Resource Access without Use of Connection Pooling",
Description: "The software accesses a data resource through a database without using a connection pooling capability.",
ExtendedDescription: "",
Lang: "en",
},
"1073": {
CweID: "1073",
Name: "Non-SQL Invokable Control Element with Excessive Number of Data Resource Accesses",
Description: "The software contains a client with a function or method that contains a large number of data accesses/queries that are sent through a data manager, i.e., does not use efficient database capabilities.",
ExtendedDescription: "",
Lang: "en",
},
"1074": {
CweID: "1074",
Name: "Class with Excessively Deep Inheritance",
Description: "A class has an inheritance level that is too high, i.e., it has a large number of parent classes.",
ExtendedDescription: "",
Lang: "en",
},
"1075": {
CweID: "1075",
Name: "Unconditional Control Flow Transfer outside of Switch Block",
Description: "The software performs unconditional control transfer (such as a \"goto\") in code outside of a branching structure such as a switch block.",
ExtendedDescription: "",
Lang: "en",
},
"1076": {
CweID: "1076",
Name: "Insufficient Adherence to Expected Conventions",
Description: "The product's architecture, source code, design, documentation, or other artifact does not follow required conventions.",
ExtendedDescription: "",
Lang: "en",
},
"1077": {
CweID: "1077",
Name: "Floating Point Comparison with Incorrect Operator",
Description: "The code performs a comparison such as an equality test between two float (floating point) values, but it uses comparison operators that do not account for the possibility of loss of precision.",
ExtendedDescription: "",
Lang: "en",
},
"1078": {
CweID: "1078",
Name: "Inappropriate Source Code Style or Formatting",
Description: "The source code does not follow desired style or formatting for indentation, white space, comments, etc.",
ExtendedDescription: "",
Lang: "en",
},
"1079": {
CweID: "1079",
Name: "Parent Class without Virtual Destructor Method",
Description: "A parent class contains one or more child classes, but the parent class does not have a virtual destructor method.",
ExtendedDescription: "",
Lang: "en",
},
"108": {
CweID: "108",
Name: "Struts: Unvalidated Action Form",
Description: "Every Action Form must have a corresponding validation form.",
ExtendedDescription: "If a Struts Action Form Mapping specifies a form, it must have a validation form defined under the Struts Validator.",
Lang: "en",
},
"1080": {
CweID: "1080",
Name: "Source Code File with Excessive Number of Lines of Code",
Description: "A source code file has too many lines of code.",
ExtendedDescription: "",
Lang: "en",
},
"1082": {
CweID: "1082",
Name: "Class Instance Self Destruction Control Element",
Description: "The code contains a class instance that calls the method or function to delete or destroy itself.",
ExtendedDescription: "",
Lang: "en",
},
"1083": {
CweID: "1083",
Name: "Data Access from Outside Expected Data Manager Component",
Description: "The software is intended to manage data access through a particular data manager component such as a relational or non-SQL database, but it contains code that performs data access operations without using that component.",
ExtendedDescription: "",
Lang: "en",
},
"1084": {
CweID: "1084",
Name: "Invokable Control Element with Excessive File or Data Access Operations",
Description: "A function or method contains too many operations that utilize a data manager or file resource.",
ExtendedDescription: "",
Lang: "en",
},
"1085": {
CweID: "1085",
Name: "Invokable Control Element with Excessive Volume of Commented-out Code",
Description: "A function, method, procedure, etc. contains an excessive amount of code that has been commented out within its body.",
ExtendedDescription: "",
Lang: "en",
},
"1086": {
CweID: "1086",
Name: "Class with Excessive Number of Child Classes",
Description: "A class contains an unnecessarily large number of children.",
ExtendedDescription: "",
Lang: "en",
},
"1087": {
CweID: "1087",
Name: "Class with Virtual Method without a Virtual Destructor",
Description: "A class contains a virtual method, but the method does not have an associated virtual destructor.",
ExtendedDescription: "",
Lang: "en",
},
"1088": {
CweID: "1088",
Name: "Synchronous Access of Remote Resource without Timeout",
Description: "The code has a synchronous call to a remote resource, but there is no timeout for the call, or the timeout is set to infinite.",
ExtendedDescription: "",
Lang: "en",
},
"1089": {
CweID: "1089",
Name: "Large Data Table with Excessive Number of Indices",
Description: "The software uses a large data table that contains an excessively large number of indices.",
ExtendedDescription: "",
Lang: "en",
},
"109": {
CweID: "109",
Name: "Struts: Validator Turned Off",
Description: "Automatic filtering via a Struts bean has been turned off, which disables the Struts Validator and custom validation logic. This exposes the application to other weaknesses related to insufficient input validation.",
ExtendedDescription: "",
Lang: "en",
},
"1090": {
CweID: "1090",
Name: "Method Containing Access of a Member Element from Another Class",
Description: "A method for a class performs an operation that directly accesses a member element from another class.",
ExtendedDescription: "",
Lang: "en",
},
"1091": {
CweID: "1091",
Name: "Use of Object without Invoking Destructor Method",
Description: "The software contains a method that accesses an object but does not later invoke the element's associated finalize/destructor method.",
ExtendedDescription: "",
Lang: "en",
},
"1092": {
CweID: "1092",
Name: "Use of Same Invokable Control Element in Multiple Architectural Layers",
Description: "The software uses the same control element across multiple architectural layers.",
ExtendedDescription: "",
Lang: "en",
},
"1093": {
CweID: "1093",
Name: "Excessively Complex Data Representation",
Description: "The software uses an unnecessarily complex internal representation for its data structures or interrelationships between those structures.",
ExtendedDescription: "",
Lang: "en",
},
"1094": {
CweID: "1094",
Name: "Excessive Index Range Scan for a Data Resource",
Description: "The software contains an index range scan for a large data table, but the scan can cover a large number of rows.",
ExtendedDescription: "",
Lang: "en",
},
"1095": {
CweID: "1095",
Name: "Loop Condition Value Update within the Loop",
Description: "The software uses a loop with a control flow condition based on a value that is updated within the body of the loop.",
ExtendedDescription: "",
Lang: "en",
},
"1096": {
CweID: "1096",
Name: "Singleton Class Instance Creation without Proper Locking or Synchronization",
Description: "The software implements a Singleton design pattern but does not use appropriate locking or other synchronization mechanism to ensure that the singleton class is only instantiated once.",
ExtendedDescription: "",
Lang: "en",
},
"1097": {
CweID: "1097",
Name: "Persistent Storable Data Element without Associated Comparison Control Element",
Description: "The software uses a storable data element that does not have all of the associated functions or methods that are necessary to support comparison.",
ExtendedDescription: "",
Lang: "en",
},
"1098": {
CweID: "1098",
Name: "Data Element containing Pointer Item without Proper Copy Control Element",
Description: "The code contains a data element with a pointer that does not have an associated copy or constructor method.",
ExtendedDescription: "",
Lang: "en",
},
"1099": {
CweID: "1099",
Name: "Inconsistent Naming Conventions for Identifiers",
Description: "The product's code, documentation, or other artifacts do not consistently use the same naming conventions for variables, callables, groups of related callables, I/O capabilities, data types, file names, or similar types of elements.",
ExtendedDescription: "",
Lang: "en",
},
"11": {
CweID: "11",
Name: "ASP.NET Misconfiguration: Creating Debug Binary",
Description: "Debugging messages help attackers learn about the system and plan a form of attack.",
ExtendedDescription: "ASP .NET applications can be configured to produce debug binaries. These binaries give detailed debugging messages and should not be used in production environments. Debug binaries are meant to be used in a development or testing environment and can pose a security risk if they are deployed to production.",
Lang: "en",
},
"110": {
CweID: "110",
Name: "Struts: Validator Without Form Field",
Description: "Validation fields that do not appear in forms they are associated with indicate that the validation logic is out of date.",
ExtendedDescription: "",
Lang: "en",
},
"1100": {
CweID: "1100",
Name: "Insufficient Isolation of System-Dependent Functions",
Description: "The product or code does not isolate system-dependent functionality into separate standalone modules.",
ExtendedDescription: "",
Lang: "en",
},
"1101": {
CweID: "1101",
Name: "Reliance on Runtime Component in Generated Code",
Description: "The product uses automatically-generated code that cannot be executed without a specific runtime support component.",
ExtendedDescription: "",
Lang: "en",
},
"1102": {
CweID: "1102",
Name: "Reliance on Machine-Dependent Data Representation",
Description: "The code uses a data representation that relies on low-level data representation or constructs that may vary across different processors, physical machines, OSes, or other physical components.",
ExtendedDescription: "",
Lang: "en",
},
"1103": {
CweID: "1103",
Name: "Use of Platform-Dependent Third Party Components",
Description: "The product relies on third-party software components that do not provide equivalent functionality across all desirable platforms.",
ExtendedDescription: "",
Lang: "en",
},
"1104": {
CweID: "1104",
Name: "Use of Unmaintained Third Party Components",
Description: "The product relies on third-party components that are not actively supported or maintained by the original developer or a trusted proxy for the original developer.",
ExtendedDescription: "",
Lang: "en",
},
"1105": {
CweID: "1105",
Name: "Insufficient Encapsulation of Machine-Dependent Functionality",
Description: "The product or code uses machine-dependent functionality, but it does not sufficiently encapsulate or isolate this functionality from the rest of the code.",
ExtendedDescription: "",
Lang: "en",
},
"1106": {
CweID: "1106",
Name: "Insufficient Use of Symbolic Constants",
Description: "The source code uses literal constants that may need to change or evolve over time, instead of using symbolic constants.",
ExtendedDescription: "",
Lang: "en",
},
"1107": {
CweID: "1107",
Name: "Insufficient Isolation of Symbolic Constant Definitions",
Description: "The source code uses symbolic constants, but it does not sufficiently place the definitions of these constants into a more centralized or isolated location.",
ExtendedDescription: "",
Lang: "en",
},
"1108": {
CweID: "1108",
Name: "Excessive Reliance on Global Variables",
Description: "The code is structured in a way that relies too much on using or setting global variables throughout various points in the code, instead of preserving the associated information in a narrower, more local context.",
ExtendedDescription: "",
Lang: "en",
},
"1109": {
CweID: "1109",
Name: "Use of Same Variable for Multiple Purposes",
Description: "The code contains a callable, block, or other code element in which the same variable is used to control more than one unique task or store more than one instance of data.",
ExtendedDescription: "",
Lang: "en",
},
"111": {
CweID: "111",
Name: "Direct Use of Unsafe JNI",
Description: "When a Java application uses the Java Native Interface (JNI) to call code written in another programming language, it can expose the application to weaknesses in that code, even if those weaknesses cannot occur in Java.",
ExtendedDescription: "Many safety features that programmers may take for granted do not apply for native code, so you must carefully review all such code for potential problems. The languages used to implement native code may be more susceptible to buffer overflows and other attacks. Native code is unprotected by the security features enforced by the runtime environment, such as strong typing and array bounds checking.",
Lang: "en",
},
"1110": {
CweID: "1110",
Name: "Incomplete Design Documentation",
Description: "The product's design documentation does not adequately describe control flow, data flow, system initialization, relationships between tasks, components, rationales, or other important aspects of the design.",
ExtendedDescription: "",
Lang: "en",
},
"1111": {
CweID: "1111",
Name: "Incomplete I/O Documentation",
Description: "The product's documentation does not adequately define inputs, outputs, or system/software interfaces.",
ExtendedDescription: "",
Lang: "en",
},
"1112": {
CweID: "1112",
Name: "Incomplete Documentation of Program Execution",
Description: "The document does not fully define all mechanisms that are used to control or influence how product-specific programs are executed.",
ExtendedDescription: "",
Lang: "en",
},
"1113": {
CweID: "1113",
Name: "Inappropriate Comment Style",
Description: "The source code uses comment styles or formats that are inconsistent or do not follow expected standards for the product.",
ExtendedDescription: "",
Lang: "en",
},
"1114": {
CweID: "1114",
Name: "Inappropriate Whitespace Style",
Description: "The source code contains whitespace that is inconsistent across the code or does not follow expected standards for the product.",
ExtendedDescription: "",
Lang: "en",
},
"1115": {
CweID: "1115",
Name: "Source Code Element without Standard Prologue",
Description: "The source code contains elements such as source files that do not consistently provide a prologue or header that has been standardized for the project.",
ExtendedDescription: "",
Lang: "en",
},
"1116": {
CweID: "1116",
Name: "Inaccurate Comments",
Description: "The source code contains comments that do not accurately describe or explain aspects of the portion of the code with which the comment is associated.",
ExtendedDescription: "",
Lang: "en",
},
"1117": {
CweID: "1117",
Name: "Callable with Insufficient Behavioral Summary",
Description: "The code contains a function or method whose signature and/or associated inline documentation does not sufficiently describe the callable's inputs, outputs, side effects, assumptions, or return codes.",
ExtendedDescription: "",
Lang: "en",
},
"1118": {
CweID: "1118",
Name: "Insufficient Documentation of Error Handling Techniques",
Description: "The documentation does not sufficiently describe the techniques that are used for error handling, exception processing, or similar mechanisms.",
ExtendedDescription: "",
Lang: "en",
},
"1119": {
CweID: "1119",
Name: "Excessive Use of Unconditional Branching",
Description: "The code uses too many unconditional branches (such as \"goto\").",
ExtendedDescription: "",
Lang: "en",
},
"112": {
CweID: "112",
Name: "Missing XML Validation",
Description: "The software accepts XML from an untrusted source but does not validate the XML against the proper schema.",
ExtendedDescription: "Most successful attacks begin with a violation of the programmer's assumptions. By accepting an XML document without validating it against a DTD or XML schema, the programmer leaves a door open for attackers to provide unexpected, unreasonable, or malicious input.",
Lang: "en",
},
"1120": {
CweID: "1120",
Name: "Excessive Code Complexity",
Description: "The code is too complex, as calculated using a well-defined, quantitative measure.",
ExtendedDescription: "",
Lang: "en",
},
"1121": {
CweID: "1121",
Name: "Excessive McCabe Cyclomatic Complexity",
Description: "The code contains McCabe cyclomatic complexity that exceeds a desirable maximum.",
ExtendedDescription: "",
Lang: "en",
},
"1122": {
CweID: "1122",
Name: "Excessive Halstead Complexity",
Description: "The code is structured in a way that a Halstead complexity measure exceeds a desirable maximum.",
ExtendedDescription: "",
Lang: "en",
},
"1123": {
CweID: "1123",
Name: "Excessive Use of Self-Modifying Code",
Description: "The product uses too much self-modifying code.",
ExtendedDescription: "",
Lang: "en",
},
"1124": {
CweID: "1124",
Name: "Excessively Deep Nesting",
Description: "The code contains a callable or other code grouping in which the nesting / branching is too deep.",
ExtendedDescription: "",
Lang: "en",
},
"1125": {
CweID: "1125",
Name: "Excessive Attack Surface",
Description: "The product has an attack surface whose quantitative measurement exceeds a desirable maximum.",
ExtendedDescription: "",
Lang: "en",
},
"1126": {
CweID: "1126",
Name: "Declaration of Variable with Unnecessarily Wide Scope",
Description: "The source code declares a variable in one scope, but the variable is only used within a narrower scope.",
ExtendedDescription: "",
Lang: "en",
},
"1127": {
CweID: "1127",
Name: "Compilation with Insufficient Warnings or Errors",
Description: "The code is compiled without sufficient warnings enabled, which may prevent the detection of subtle bugs or quality issues.",
ExtendedDescription: "",
Lang: "en",
},
"113": {
CweID: "113",
Name: "Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Request/Response Splitting')",
Description: "The software receives data from an HTTP agent/component (e.g., web server, proxy, browser, etc.), but it does not neutralize or incorrectly neutralizes CR and LF characters before the data is included in outgoing HTTP headers.",
ExtendedDescription: "",
Lang: "en",
},
"114": {
CweID: "114",
Name: "Process Control",
Description: "Executing commands or loading libraries from an untrusted source or in an untrusted environment can cause an application to execute malicious commands (and payloads) on behalf of an attacker.",
ExtendedDescription: "Process control vulnerabilities take two forms: 1. An attacker can change the command that the program executes: the attacker explicitly controls what the command is. 2. An attacker can change the environment in which the command executes: the attacker implicitly controls what the command means. Process control vulnerabilities of the first type occur when either data enters the application from an untrusted source and the data is used as part of a string representing a command that is executed by the application. By executing the command, the application gives an attacker a privilege or capability that the attacker would not otherwise have.",
Lang: "en",
},
"115": {
CweID: "115",
Name: "Misinterpretation of Input",
Description: "The software misinterprets an input, whether from an attacker or another product, in a security-relevant fashion.",
ExtendedDescription: "",
Lang: "en",
},
"116": {
CweID: "116",
Name: "Improper Encoding or Escaping of Output",
Description: "The software prepares a structured message for communication with another component, but encoding or escaping of the data is either missing or done incorrectly. As a result, the intended structure of the message is not preserved.",
ExtendedDescription: "",
Lang: "en",
},
"1164": {
CweID: "1164",
Name: "Irrelevant Code",
Description: "The program contains code that is not essential for execution, i.e. makes no state changes and has no side effects that alter data or control flow, such that removal of the code would have no impact to functionality or correctness.",
ExtendedDescription: "",
Lang: "en",
},
"117": {
CweID: "117",
Name: "Improper Output Neutralization for Logs",
Description: "The software does not neutralize or incorrectly neutralizes output that is written to logs.",
ExtendedDescription: "",
Lang: "en",
},
"1173": {
CweID: "1173",
Name: "Improper Use of Validation Framework",
Description: "The application does not use, or incorrectly uses, an input validation framework that is provided by the source language or an independent library.",
ExtendedDescription: "Many modern coding languages provide developers with input validation frameworks to make the task of input validation easier and less error-prone. These frameworks will automatically check all input against specified criteria and direct execution to error handlers when invalid input is received. The improper use (i.e., an incorrect implementation or missing altogether) of these frameworks is not directly exploitable, but can lead to an exploitable condition if proper input validation is not performed later in the application. Not using provided input validation frameworks can also hurt the maintainability of code as future developers may not recognize the downstream input validation being used in the place of the validation framework.",
Lang: "en",
},
"1174": {
CweID: "1174",
Name: "ASP.NET Misconfiguration: Improper Model Validation",
Description: "The ASP.NET application does not use, or incorrectly uses, the model validation framework.",
ExtendedDescription: "",
Lang: "en",
},
"1176": {
CweID: "1176",
Name: "Inefficient CPU Computation",
Description: "The program performs CPU computations using algorithms that are not as efficient as they could be for the needs of the developer, i.e., the computations can be optimized further.",
ExtendedDescription: "",
Lang: "en",
},
"1177": {
CweID: "1177",
Name: "Use of Prohibited Code",
Description: "The software uses a function, library, or third party component that has been explicitly prohibited, whether by the developer or the customer.",
ExtendedDescription: "",
Lang: "en",
},
"118": {
CweID: "118",
Name: "Incorrect Access of Indexable Resource ('Range Error')",
Description: "The software does not restrict or incorrectly restricts operations within the boundaries of a resource that is accessed using an index or pointer, such as memory or files.",
ExtendedDescription: "",
Lang: "en",
},
"1187": {
CweID: "1187",
Name: "DEPRECATED: Use of Uninitialized Resource",
Description: "This entry has been deprecated because it was a duplicate of CWE-908. All content has been transferred to CWE-908.",
ExtendedDescription: "",
Lang: "en",
},
"1188": {
CweID: "1188",
Name: "Insecure Default Initialization of Resource",
Description: "The software initializes or sets a resource with a default that is intended to be changed by the administrator, but the default is not secure.",
ExtendedDescription: "",
Lang: "en",
},
"1189": {
CweID: "1189",
Name: "Improper Isolation of Shared Resources on System-on-a-Chip (SoC)",
Description: "The System-On-a-Chip (SoC) does not properly isolate shared resources between trusted and untrusted agents.",
ExtendedDescription: "",
Lang: "en",
},
"119": {
CweID: "119",
Name: "Improper Restriction of Operations within the Bounds of a Memory Buffer",
Description: "The software performs operations on a memory buffer, but it can read from or write to a memory location that is outside of the intended boundary of the buffer.",
ExtendedDescription: "",
Lang: "en",
},
"1190": {
CweID: "1190",
Name: "DMA Device Enabled Too Early in Boot Phase",
Description: "The product enables a Direct Memory Access (DMA) capable device before the security configuration settings are established, which allows an attacker to extract data from or gain privileges on the product.",
ExtendedDescription: "",
Lang: "en",
},
"1191": {
CweID: "1191",
Name: "On-Chip Debug and Test Interface With Improper Access Control",
Description: "The chip does not implement or does not correctly perform access control to check whether users are authorized to access internal registers and test modes through the physical debug/test interface.",
ExtendedDescription: "",
Lang: "en",
},
"1192": {
CweID: "1192",
Name: "System-on-Chip (SoC) Using Components without Unique, Immutable Identifiers",
Description: "The System-on-Chip (SoC) does not have unique, immutable identifiers for each of its components.",
ExtendedDescription: "",
Lang: "en",
},
"1193": {
CweID: "1193",
Name: "Power-On of Untrusted Execution Core Before Enabling Fabric Access Control",
Description: "The product enables components that contain untrusted firmware before memory and fabric access controls have been enabled.",
ExtendedDescription: "",
Lang: "en",
},
"12": {
CweID: "12",
Name: "ASP.NET Misconfiguration: Missing Custom Error Page",
Description: "An ASP .NET application must enable custom error pages in order to prevent attackers from mining information from the framework's built-in responses.",
ExtendedDescription: "",
Lang: "en",
},
"120": {
CweID: "120",
Name: "Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')",
Description: "The program copies an input buffer to an output buffer without verifying that the size of the input buffer is less than the size of the output buffer, leading to a buffer overflow.",
ExtendedDescription: "A buffer overflow condition exists when a program attempts to put more data in a buffer than it can hold, or when a program attempts to put data in a memory area outside of the boundaries of a buffer. The simplest type of error, and the most common cause of buffer overflows, is the \"classic\" case in which the program copies the buffer without restricting how much is copied. Other variants exist, but the existence of a classic overflow strongly suggests that the programmer is not considering even the most basic of security protections.",
Lang: "en",
},
"1204": {
CweID: "1204",
Name: "Generation of Weak Initialization Vector (IV)",
Description: "The product uses a cryptographic primitive that uses an Initialization Vector (IV), but the product does not generate IVs that are sufficiently unpredictable or unique according to the expected cryptographic requirements for that primitive.",
ExtendedDescription: "By design, some cryptographic primitives (such as block ciphers) require that IVs must have certain properties for the uniqueness and/or unpredictability of an IV. Primitives may vary in how important these properties are. If these properties are not maintained, e.g. by a bug in the code, then the cryptography may be weakened or broken by attacking the IVs themselves.",
Lang: "en",
},
"1209": {
CweID: "1209",
Name: "Failure to Disable Reserved Bits",
Description: "The reserved bits in a hardware design are not disabled prior to production. Typically, reserved bits are used for future capabilities and should not support any functional logic in the design. However, designers might covertly use these bits to debug or further develop new capabilities in production hardware. Adversaries with access to these bits will write to them in hopes of compromising hardware state.",
ExtendedDescription: "",
Lang: "en",
},
"121": {
CweID: "121",
Name: "Stack-based Buffer Overflow",
Description: "A stack-based buffer overflow condition is a condition where the buffer being overwritten is allocated on the stack (i.e., is a local variable or, rarely, a parameter to a function).",
ExtendedDescription: "",
Lang: "en",
},
"122": {
CweID: "122",
Name: "Heap-based Buffer Overflow",
Description: "A heap overflow condition is a buffer overflow, where the buffer that can be overwritten is allocated in the heap portion of memory, generally meaning that the buffer was allocated using a routine such as malloc().",
ExtendedDescription: "",
Lang: "en",
},
"1220": {
CweID: "1220",
Name: "Insufficient Granularity of Access Control",
Description: "The product implements access controls via a policy or other feature with the intention to disable or restrict accesses (reads and/or writes) to assets in a system from untrusted agents. However, implemented access controls lack required granularity, which renders the control policy too broad because it allows accesses from unauthorized agents to the security-sensitive assets.",
ExtendedDescription: "",
Lang: "en",
},
"1221": {
CweID: "1221",
Name: "Incorrect Register Defaults or Module Parameters",
Description: "Hardware description language code incorrectly defines register defaults or hardware IP parameters to insecure values.",
ExtendedDescription: "",
Lang: "en",
},
"1222": {
CweID: "1222",
Name: "Insufficient Granularity of Address Regions Protected by Register Locks",
Description: "The product defines a large address region protected from modification by the same register lock control bit. This results in a conflict between the functional requirement that some addresses need to be writable by software during operation and the security requirement that the system configuration lock bit must be set during the boot process.",
ExtendedDescription: "",
Lang: "en",
},
"1223": {
CweID: "1223",
Name: "Race Condition for Write-Once Attributes",
Description: "A write-once register in hardware design is programmable by an untrusted software component earlier than the trusted software component, resulting in a race condition issue.",
ExtendedDescription: "",
Lang: "en",
},
"1224": {
CweID: "1224",
Name: "Improper Restriction of Write-Once Bit Fields",
Description: "The hardware design control register \"sticky bits\" or write-once bit fields are improperly implemented, such that they can be reprogrammed by software.",
ExtendedDescription: "",
Lang: "en",
},
"1229": {
CweID: "1229",
Name: "Creation of Emergent Resource",
Description: "The product manages resources or behaves in a way that indirectly creates a new, distinct resource that can be used by attackers in violation of the intended policy.",
ExtendedDescription: "",
Lang: "en",
},
"123": {
CweID: "123",
Name: "Write-what-where Condition",
Description: "Any condition where the attacker has the ability to write an arbitrary value to an arbitrary location, often as the result of a buffer overflow.",
ExtendedDescription: "",
Lang: "en",
},
"1230": {
CweID: "1230",
Name: "Exposure of Sensitive Information Through Metadata",
Description: "The product prevents direct access to a resource containing sensitive information, but it does not sufficiently limit access to metadata that is derived from the original, sensitive information.",
ExtendedDescription: "",
Lang: "en",
},