Commit d18e4e1
committed
fix: do not write linkpaths through symlinks
Prevent any `Link` or `SymbolicLink` entry from being created if its
`linkpath` would target a location that is through a symbolic link from
the current working directory.
This matches the behavior of `bsdtar` for hard links, and is somewhat
more restrictive in applying the same logic to symbolic links as well.
Unpacking links with targets that extend through symlink folders is
allowed if `preservePaths` option is enabled, as this disables all
protective link checking by design, and is only designed for use with
trusted input.
Fix: GHSA-83g3-92jg-28cx1 parent 4a37eb9 commit d18e4e1
4 files changed
Lines changed: 159 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
| 24 | + | |
23 | 25 | | |
24 | 26 | | |
25 | 27 | | |
| |||
31 | 33 | | |
32 | 34 | | |
33 | 35 | | |
| 36 | + | |
34 | 37 | | |
35 | 38 | | |
36 | 39 | | |
| |||
235 | 238 | | |
236 | 239 | | |
237 | 240 | | |
238 | | - | |
| 241 | + | |
239 | 242 | | |
240 | 243 | | |
241 | 244 | | |
| |||
332 | 335 | | |
333 | 336 | | |
334 | 337 | | |
| 338 | + | |
335 | 339 | | |
336 | 340 | | |
337 | 341 | | |
| |||
663 | 667 | | |
664 | 668 | | |
665 | 669 | | |
666 | | - | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
667 | 690 | | |
668 | 691 | | |
669 | 692 | | |
670 | 693 | | |
671 | 694 | | |
672 | 695 | | |
673 | | - | |
| 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 | + | |
674 | 730 | | |
675 | 731 | | |
676 | 732 | | |
| |||
851 | 907 | | |
852 | 908 | | |
853 | 909 | | |
854 | | - | |
855 | 910 | | |
856 | 911 | | |
857 | 912 | | |
| |||
864 | 919 | | |
865 | 920 | | |
866 | 921 | | |
867 | | - | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
868 | 925 | | |
869 | 926 | | |
870 | 927 | | |
871 | | - | |
| 928 | + | |
872 | 929 | | |
873 | 930 | | |
874 | 931 | | |
| |||
1089 | 1146 | | |
1090 | 1147 | | |
1091 | 1148 | | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
| 1158 | + | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
1092 | 1171 | | |
1093 | 1172 | | |
1094 | 1173 | | |
1095 | 1174 | | |
1096 | 1175 | | |
1097 | 1176 | | |
1098 | | - | |
| 1177 | + | |
1099 | 1178 | | |
1100 | | - | |
| 1179 | + | |
1101 | 1180 | | |
1102 | 1181 | | |
1103 | 1182 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
3317 | 3317 | | |
3318 | 3318 | | |
3319 | 3319 | | |
3320 | | - | |
| 3320 | + | |
3321 | 3321 | | |
3322 | 3322 | | |
3323 | 3323 | | |
| |||
3417 | 3417 | | |
3418 | 3418 | | |
3419 | 3419 | | |
3420 | | - | |
3421 | | - | |
3422 | | - | |
| 3420 | + | |
| 3421 | + | |
| 3422 | + | |
| 3423 | + | |
3423 | 3424 | | |
3424 | 3425 | | |
| 3426 | + | |
| 3427 | + | |
| 3428 | + | |
| 3429 | + | |
| 3430 | + | |
| 3431 | + | |
| 3432 | + | |
| 3433 | + | |
| 3434 | + | |
| 3435 | + | |
| 3436 | + | |
| 3437 | + | |
| 3438 | + | |
| 3439 | + | |
| 3440 | + | |
| 3441 | + | |
| 3442 | + | |
| 3443 | + | |
| 3444 | + | |
| 3445 | + | |
| 3446 | + | |
| 3447 | + | |
| 3448 | + | |
| 3449 | + | |
| 3450 | + | |
| 3451 | + | |
| 3452 | + | |
| 3453 | + | |
| 3454 | + | |
| 3455 | + | |
| 3456 | + | |
| 3457 | + | |
| 3458 | + | |
| 3459 | + | |
| 3460 | + | |
| 3461 | + | |
| 3462 | + | |
| 3463 | + | |
| 3464 | + | |
| 3465 | + | |
| 3466 | + | |
| 3467 | + | |
| 3468 | + | |
| 3469 | + | |
| 3470 | + | |
| 3471 | + | |
| 3472 | + | |
| 3473 | + | |
| 3474 | + | |
| 3475 | + | |
| 3476 | + | |
| 3477 | + | |
| 3478 | + | |
| 3479 | + | |
| 3480 | + | |
| 3481 | + | |
| 3482 | + | |
| 3483 | + | |
| 3484 | + | |
| 3485 | + | |
| 3486 | + | |
0 commit comments