Knowledge

prelink

Source 📝

260: 165: 63: 22: 528:
the address space of higher privileged processes. Local access may commonly be gained by shell accounts or Web server accounts that allow the use of CGI scripts, which may read and output any file on the system. Directory traversal vulnerabilities can be used by attackers without accounts if CGI script vulnerabilities are available.
413:
While dynamic linking has advantages in code size and management, there are drawbacks as well. Every time a program is run, the loader needs to resolve (find) the relevant libraries. Since libraries move around in memory, there is a performance penalty for resolution. This penalty increases for each
527:
By reading a shared library file such as libc, an attacker with local access can discover the load address of libc in every other application on the system. Since most programs link to libc, the libc library file always has to be readable; any attacker with local access may gather information about
450:
Prebinding has changed a few times within the Mac OS X series. Before 10.2, prebinding only happened during the installation procedure (the aforementioned "Optimizing" stage). From 10.2 through 10.3 the OS checked for prebinding at launch time for applications, and the first time an application ran
531:
Because prelink is often run periodically, typically every two weeks, the address of any given library has a chance of changing over time. prelink is often used in an incremental mode in which already prelinked libraries are not altered unless absolutely necessary, so a library may not change its
519:
As stated, prelink and per-process library address randomization cannot be used in conjunction. In order to avoid completely removing this security enhancement, prelink supplies its own randomization; however, this does not help a general information leak caused by prelink. Attackers with the
451:
it would be prebound, making subsequent launches faster. This could also be manually run, which some OS-level installs did. In 10.4, only OS libraries were prebound. In 10.5 and later, Apple replaced prebinding with a
532:
base address when prelink is re-run. This gives any address derived a half-life of the period in which prelink is run. Also note that if a new version of the library is installed, the addresses change.
417:
Prelinking reduces this penalty by resolving libraries in advance. Afterward, resolution only occurs if the libraries have changed since being prelinked, such as following perhaps an upgrade.
520:
ability to read certain arbitrary files on the target system can discover where libraries are loaded in privileged daemons; often libc is enough as it is the most common library used in
516:(ASLR) for libraries cannot be used in conjunction with prelink without defeating the purpose of prelink and forcing the dynamic linker to perform relocations at program load time. 84: 77: 479: 650: 577:
internally. Specifically when checkpointing a program on one host, and trying to restart on a different host, the restarted program may fail with a
842:"Speed up application load time in Ubuntu Linux Hardy Heron using prelink: HOWTO and benchmarks (mention in ubuntuforums/original link is dead)" 512:
attack harder to perform because the addresses are unique to that system. The reason prelink does this is because kernel facilities supplying
508:
When run with the "-R" option, prelink will randomly select the address base where libraries are loaded. This selection makes a
175: 565: 904: 899: 590: 513: 324: 233: 127: 361: 343: 146: 49: 296: 205: 99: 536: 744: 487: 303: 281: 212: 190: 106: 894: 620: 496:
Performance results have been mixed, but it seems to aid systems with a large number of libraries, such as
310: 219: 113: 544: 447:
performs prebinding in the "Optimizing" stage of installing system software or certain applications.
790: 292: 201: 95: 540: 277: 35: 721: 386:, is a method for optimizing application load times by resolving library symbols prior to launch. 270: 73: 560: 777: 521: 811:: prelink ELF shared libraries and binaries to speed up startup time –  700: 8: 595: 605: 600: 403: 402:
to execute. These libraries are normally integrated with the program at run time by a
834: 825: 456: 317: 226: 120: 475: 395: 841: 688: 856: 407: 186: 909: 625: 509: 399: 888: 830: 759: 669: 472: 821: 41: 581:
due to differences in host-specific library memory address randomization.
610: 433: 630: 490: 426: 806: 375: 259: 164: 62: 871: 816: 615: 578: 444: 570: 483: 551:
programs be built PIE to facilitate a more secure environment.
430: 812: 548: 452: 497: 182: 284:. Unsourced material may be challenged and removed. 869: 459:mechanism, which provided better OS performance. 886: 559:Occasionally, prelinking can cause issues with 467:On Linux, prelinking is accomplished via the 191:introducing citations to additional sources 670:"ELF Prelinking and what it can do for you" 50:Learn how and when to remove these messages 722:"segfault when resuming on different host" 872:"Prelink and Address Space Randomization" 362:Learn how and when to remove this message 344:Learn how and when to remove this message 147:Learn how and when to remove this message 503: 181:Relevant discussion may be found on the 815:Administration and Privileged Commands 757: 414:additional library needing resolution. 398:consist of code that requires external 887: 719: 667: 83:Please improve this article by adding 854: 839: 282:adding citations to reliable sources 253: 158: 56: 15: 651:"Manual Page for update_prebinding" 569:, as well as other libraries (like 13: 751: 547:, and recommends that network and 514:address space layout randomization 14: 921: 870:John Richard Moser (2006-07-05). 798: 31:This article has multiple issues. 537:position independent executables 258: 174:relies largely or entirely on a 163: 61: 20: 269:needs additional citations for 39:or discuss these issues on the 713: 693: 682: 661: 643: 535:Jakub Jelínek points out that 1: 758:Jelínek, Jakub (2004-03-04). 636: 389: 85:secondary or tertiary sources 857:"Gentoo Linux Prelink Guide" 855:Jones, Stefan (2007-04-02). 840:Riis, Quintin (2008-06-15). 668:Crasta, James (2004-05-17). 7: 720:Hursey, Josh (2011-12-29). 584: 563:and restart libraries like 539:(PIE) ignore prelinking on 439: 10: 926: 905:Memory management software 655:Apple Developer Connection 900:Preloading and prebinding 554: 420: 541:Red Hat Enterprise Linux 462: 785:Cite journal requires 745:A detailed explanation 561:application checkpoint 522:return-to-libc attacks 406:, in a process called 72:relies excessively on 657:. Apple Computer Inc. 504:prelink randomization 895:Free system software 278:improve this article 187:improve this article 596:Library (computing) 606:Loader (computing) 601:Linker (computing) 822:Official releases 396:computer programs 372: 371: 364: 354: 353: 346: 328: 252: 251: 237: 157: 156: 149: 131: 54: 917: 881: 879: 878: 866: 864: 863: 851: 849: 848: 810: 809: 794: 788: 783: 781: 773: 771: 770: 764: 737: 736: 734: 733: 717: 711: 710: 708: 707: 697: 691: 686: 680: 679: 677: 676: 665: 659: 658: 647: 576: 568: 400:shared libraries 367: 360: 349: 342: 338: 335: 329: 327: 286: 262: 254: 247: 244: 238: 236: 195: 167: 159: 152: 145: 141: 138: 132: 130: 89: 65: 57: 46: 24: 23: 16: 925: 924: 920: 919: 918: 916: 915: 914: 885: 884: 876: 874: 861: 859: 846: 844: 805: 804: 801: 786: 784: 775: 774: 768: 766: 762: 754: 752:Further reading 741: 740: 731: 729: 718: 714: 705: 703: 699: 698: 694: 687: 683: 674: 672: 666: 662: 649: 648: 644: 639: 591:Dynamic binding 587: 574: 564: 557: 506: 465: 442: 423: 408:dynamic linking 392: 368: 357: 356: 355: 350: 339: 333: 330: 287: 285: 275: 263: 248: 242: 239: 196: 194: 180: 168: 153: 142: 136: 133: 90: 88: 82: 78:primary sources 66: 25: 21: 12: 11: 5: 923: 913: 912: 907: 902: 897: 883: 882: 867: 852: 837: 828: 819: 800: 799:External links 797: 796: 795: 787:|journal= 753: 750: 749: 748: 739: 738: 728:(Mailing list) 712: 692: 681: 660: 641: 640: 638: 635: 634: 633: 628: 626:Static library 623: 618: 613: 608: 603: 598: 593: 586: 583: 556: 553: 510:return-to-libc 505: 502: 464: 461: 441: 438: 425:Mac OS stores 422: 419: 391: 388: 382:, also called 370: 369: 352: 351: 266: 264: 257: 250: 249: 185:. Please help 171: 169: 162: 155: 154: 69: 67: 60: 55: 29: 28: 26: 19: 9: 6: 4: 3: 2: 922: 911: 908: 906: 903: 901: 898: 896: 893: 892: 890: 873: 868: 858: 853: 843: 838: 836: 835:prelink-cross 832: 831:Yocto Project 829: 827: 826:Jakub Jelínek 823: 820: 818: 814: 808: 803: 802: 792: 779: 761: 756: 755: 747:of prebinding 746: 743: 742: 727: 726:OpenMPI Users 723: 716: 702: 696: 690: 685: 671: 664: 656: 652: 646: 642: 632: 629: 627: 624: 622: 619: 617: 614: 612: 609: 607: 604: 602: 599: 597: 594: 592: 589: 588: 582: 580: 572: 567: 562: 552: 550: 546: 542: 538: 533: 529: 525: 523: 517: 515: 511: 501: 499: 494: 492: 489: 485: 481: 480:Jakub Jelínek 477: 474: 470: 460: 458: 454: 448: 446: 437: 435: 432: 428: 418: 415: 411: 409: 405: 401: 397: 387: 385: 381: 377: 366: 363: 348: 345: 337: 326: 323: 319: 316: 312: 309: 305: 302: 298: 295: –  294: 290: 289:Find sources: 283: 279: 273: 272: 267:This article 265: 261: 256: 255: 246: 235: 232: 228: 225: 221: 218: 214: 211: 207: 204: –  203: 199: 198:Find sources: 192: 188: 184: 178: 177: 176:single source 172:This article 170: 166: 161: 160: 151: 148: 140: 129: 126: 122: 119: 115: 112: 108: 105: 101: 98: –  97: 93: 92:Find sources: 86: 80: 79: 75: 70:This article 68: 64: 59: 58: 53: 51: 44: 43: 38: 37: 32: 27: 18: 17: 875:. Retrieved 860:. Retrieved 845:. Retrieved 778:cite journal 767:. Retrieved 730:. Retrieved 725: 715: 704:. Retrieved 695: 684: 673:. Retrieved 663: 654: 645: 558: 534: 530: 526: 518: 507: 495: 468: 466: 449: 443: 424: 416: 412: 393: 383: 379: 373: 358: 340: 331: 321: 314: 307: 300: 288: 276:Please help 271:verification 268: 240: 230: 223: 216: 209: 197: 173: 143: 134: 124: 117: 110: 103: 91: 71: 47: 40: 34: 33:Please help 30: 765:. Draft 0.7 611:Object file 573:) that use 478:written by 471:program, a 434:file format 427:executables 889:Categories 877:2006-07-13 862:2006-05-10 847:2008-08-22 807:prelink(8) 769:2006-07-14 732:2012-01-05 706:2012-01-05 701:"BLCR FAQ" 675:2006-05-10 637:References 631:Prefetcher 621:Relocation 390:Background 384:prelinking 380:prebinding 334:March 2010 304:newspapers 243:April 2010 213:newspapers 137:March 2011 107:newspapers 74:references 36:improve it 760:"Prelink" 376:computing 293:"Prelink" 202:"Prelink" 183:talk page 96:"Prelink" 42:talk page 616:Rebasing 585:See also 579:segfault 491:binaries 445:Mac OS X 440:Mac OS X 571:OpenMPI 484:Red Hat 476:program 469:prelink 455:shared 429:in the 318:scholar 227:scholar 121:scholar 817:Manual 555:Issues 545:Fedora 431:Mach-O 421:Mac OS 404:loader 320:  313:  306:  299:  291:  229:  222:  215:  208:  200:  123:  116:  109:  102:  94:  910:MacOS 833:fork 813:Linux 763:(PDF) 463:Linux 457:cache 394:Most 325:JSTOR 311:books 234:JSTOR 220:books 128:JSTOR 114:books 791:help 689:blcr 575:blcr 566:blcr 549:SUID 543:and 486:for 473:free 453:dyld 297:news 206:news 100:news 824:by 498:KDE 488:ELF 482:of 374:In 280:by 189:by 76:to 891:: 782:: 780:}} 776:{{ 724:. 653:. 524:. 500:. 493:. 436:. 410:. 378:, 87:. 45:. 880:. 865:. 850:. 793:) 789:( 772:. 735:. 709:. 678:. 365:) 359:( 347:) 341:( 336:) 332:( 322:· 315:· 308:· 301:· 274:. 245:) 241:( 231:· 224:· 217:· 210:· 193:. 179:. 150:) 144:( 139:) 135:( 125:· 118:· 111:· 104:· 81:. 52:) 48:(

Index

improve it
talk page
Learn how and when to remove these messages

references
primary sources
secondary or tertiary sources
"Prelink"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message

single source
talk page
improve this article
introducing citations to additional sources
"Prelink"
news
newspapers
books
scholar
JSTOR

verification
improve this article
adding citations to reliable sources
"Prelink"

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.