home.social

#packagist — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #packagist, aggregated by home.social.

  1. «Fix typo»: как в PHP закоммитили бэкдор и почему composer install — это акт доверия

    Каждый composer install — это акт доверия: вы запускаете на CI и в проде код, который собрал и опубликовал кто‑то другой, а проверяете обычно лишь хеш в composer.lock. Но хеш отвечает на вопрос «тот же ли это байт, что вчера», а не «кто и из чего его собрал». Реальные инциденты показывают цену этого доверия: в 2021-м в исходники PHP закоммитили бэкдор от имени Расмуса Лердорфа; в xz вредонос жил в release‑архиве, которого не было в git; у популярного GitHub Action переписали теги и слили секреты из тысяч пайплайнов. Между кодом на ревью и артефактом в вашем vendor/ — длинная цепочка, и атаковать можно любое звено. В статье сначала разбор: как устроены эти атаки и почему GPG, хеши и composer audit закрывают цепочку лишь частично. Затем ответ индустрии — Sigstore: подпись без управления ключами. И главное — практика на PHP: подписываем релиз в GitHub Actions без единого секрета, проверяем эталонным gh, из CLI и прямо из кода с типизированным SLSA‑провенансом, мониторим журнал Rekor. С рабочим кодом и честной моделью угроз: что подпись ловит, а что нет. Разобрать цепочку поставок ПО

    habr.com/ru/articles/1048056/

    #supply_chain_security #Sigstore #Rekor #Fulcio #SLSA #Composer #Packagist #аттестация_артефактов #github_actions #php

  2. «Fix typo»: как в PHP закоммитили бэкдор и почему composer install — это акт доверия

    Каждый composer install — это акт доверия: вы запускаете на CI и в проде код, который собрал и опубликовал кто‑то другой, а проверяете обычно лишь хеш в composer.lock. Но хеш отвечает на вопрос «тот же ли это байт, что вчера», а не «кто и из чего его собрал». Реальные инциденты показывают цену этого доверия: в 2021-м в исходники PHP закоммитили бэкдор от имени Расмуса Лердорфа; в xz вредонос жил в release‑архиве, которого не было в git; у популярного GitHub Action переписали теги и слили секреты из тысяч пайплайнов. Между кодом на ревью и артефактом в вашем vendor/ — длинная цепочка, и атаковать можно любое звено. В статье сначала разбор: как устроены эти атаки и почему GPG, хеши и composer audit закрывают цепочку лишь частично. Затем ответ индустрии — Sigstore: подпись без управления ключами. И главное — практика на PHP: подписываем релиз в GitHub Actions без единого секрета, проверяем эталонным gh, из CLI и прямо из кода с типизированным SLSA‑провенансом, мониторим журнал Rekor. С рабочим кодом и честной моделью угроз: что подпись ловит, а что нет. Разобрать цепочку поставок ПО

    habr.com/ru/articles/1048056/

    #supply_chain_security #Sigstore #Rekor #Fulcio #SLSA #Composer #Packagist #аттестация_артефактов #github_actions #php

  3. «Fix typo»: как в PHP закоммитили бэкдор и почему composer install — это акт доверия

    Каждый composer install — это акт доверия: вы запускаете на CI и в проде код, который собрал и опубликовал кто‑то другой, а проверяете обычно лишь хеш в composer.lock. Но хеш отвечает на вопрос «тот же ли это байт, что вчера», а не «кто и из чего его собрал». Реальные инциденты показывают цену этого доверия: в 2021-м в исходники PHP закоммитили бэкдор от имени Расмуса Лердорфа; в xz вредонос жил в release‑архиве, которого не было в git; у популярного GitHub Action переписали теги и слили секреты из тысяч пайплайнов. Между кодом на ревью и артефактом в вашем vendor/ — длинная цепочка, и атаковать можно любое звено. В статье сначала разбор: как устроены эти атаки и почему GPG, хеши и composer audit закрывают цепочку лишь частично. Затем ответ индустрии — Sigstore: подпись без управления ключами. И главное — практика на PHP: подписываем релиз в GitHub Actions без единого секрета, проверяем эталонным gh, из CLI и прямо из кода с типизированным SLSA‑провенансом, мониторим журнал Rekor. С рабочим кодом и честной моделью угроз: что подпись ловит, а что нет. Разобрать цепочку поставок ПО

    habr.com/ru/articles/1048056/

    #supply_chain_security #Sigstore #Rekor #Fulcio #SLSA #Composer #Packagist #аттестация_артефактов #github_actions #php

  4. RE: mastodon.social/@seldaek/11665

    I am very excited about this update!

    The #PHP ecosystem cannot thank @seldaek, @naderman, and everyone at #Packagist and everybody contributing to #Composer enough for the amazing work they are doing.

  5. RE: mastodon.social/@seldaek/11665

    I am very excited about this update!

    The #PHP ecosystem cannot thank @seldaek, @naderman, and everyone at #Packagist and everybody contributing to #Composer enough for the amazing work they are doing.

  6. 📰 Packagist Supply Chain Attack Uses Clever Evasion to Infect PHP Projects with Linux Malware

    🚨 PHP supply chain attack hits Packagist! 8+ packages compromised to drop Linux malware. Attackers hid malicious code in `package.json` to evade PHP security scanners. #SupplyChainAttack #PHP #Packagist #CyberSecurity

    🌐 cyber[.]netsecops[.]io

    🔗 cyber.netsecops.io/articles/co

  7. 📰 Packagist Supply Chain Attack Uses Clever Evasion to Infect PHP Projects with Linux Malware

    🚨 PHP supply chain attack hits Packagist! 8+ packages compromised to drop Linux malware. Attackers hid malicious code in `package.json` to evade PHP security scanners. #SupplyChainAttack #PHP #Packagist #CyberSecurity

    🌐 cyber[.]netsecops[.]io

    🔗 cyber.netsecops.io/articles/co

  8. GitHub-Hosted Malware Targets PHP Packages in Coordinated Supply Chain Attack

    Malicious code was injected into eight PHP packages on Packagist, triggering a Linux binary download from GitHub Releases via JavaScript lifecycle hooks in package.json postinstall scripts. The attack was swiftly contained, with the malicious versions removed from Packagist.

    osintsights.com/github-hosted-

    #SupplyChainAttack #Github #Php #Packagist #Javascript

  9. ▪ Also patched in legacy Composer 1.10.28 (upgrade to 2.x still recommended)

    🚑 Immediate actions:
    1️⃣ Run composer.phar self-update NOW
    2️⃣ Can't update? Disable #GitHubActions workflows running Composer
    3️⃣ Review CI logs for leaked tokens
    4️⃣ Delete any log contents containing raw token values before they expire

    📦 #Packagist.org is unaffected — no GitHub App involved. #PrivatePackagist applied the fix and audited logs: no tokens were exposed. Self-hosted PP is also unaffected.

  10. ▪ Also patched in legacy Composer 1.10.28 (upgrade to 2.x still recommended)

    🚑 Immediate actions:
    1️⃣ Run composer.phar self-update NOW
    2️⃣ Can't update? Disable #GitHubActions workflows running Composer
    3️⃣ Review CI logs for leaked tokens
    4️⃣ Delete any log contents containing raw token values before they expire

    📦 #Packagist.org is unaffected — no GitHub App involved. #PrivatePackagist applied the fix and audited logs: no tokens were exposed. Self-hosted PP is also unaffected.

  11. ⚠️ Fake #Laravel packages on #Packagist deploy a cross-platform #RAT on Windows, macOS & Linux — researchers at Socket flagged 3 malicious #PHP packages disguised as Laravel utilities #cybersecurity #supplychain #opensource #infosec

    📦 Malicious packages identified:
    • nhattuanbl/lara-helper (37 downloads)
    • nhattuanbl/simple-queue (29 downloads)
    • nhattuanbl/lara-swagger (49 downloads)

    🧵 👇

  12. ⚠️ Fake #Laravel packages on #Packagist deploy a cross-platform #RAT on Windows, macOS & Linux — researchers at Socket flagged 3 malicious #PHP packages disguised as Laravel utilities #cybersecurity #supplychain #opensource #infosec

    📦 Malicious packages identified:
    • nhattuanbl/lara-helper (37 downloads)
    • nhattuanbl/simple-queue (29 downloads)
    • nhattuanbl/lara-swagger (49 downloads)

    🧵 👇

  13. I finally solved my Composer hanging/stuck issue 🚀
    Set up a local proxy server and routed downloads using PHP stream functions.

    Added real-time debugging with log files to trace where it was freezing.

    Result: smooth installs, zero guesswork 😌

    #PHP #composer #packagist #proxy

  14. I finally solved my Composer hanging/stuck issue 🚀
    Set up a local proxy server and routed downloads using PHP stream functions.

    Added real-time debugging with log files to trace where it was freezing.

    Result: smooth installs, zero guesswork 😌

    #PHP #composer #packagist #proxy

  15. The other night I made this little #PHP tool that validates #PHPDoc annotations against the actual method signature, to make sure that they are compatible and don't drift apart over time.

    I use it as a quick check before running #PHPStan to make sure that the static analysis is correctly informed. Published it on #Packagist in case anyone else would find it useful too: packagist.org/packages/nsrosen

  16. The other night I made this little #PHP tool that validates #PHPDoc annotations against the actual method signature, to make sure that they are compatible and don't drift apart over time.

    I use it as a quick check before running #PHPStan to make sure that the static analysis is correctly informed. Published it on #Packagist in case anyone else would find it useful too: packagist.org/packages/nsrosen

  17. RE: infosec.exchange/@art4/1157471

    Just in time for the end of 2025 (at least in my time zone), I released version 1.0.0 of my new #RectorExtension that replaces the native type declaration set. The special thing about it: no breaking changes!

    This means: no changes to parameter types or return types if your class/method is not private or final. This is particularly important for library maintainers who want to use #Rector but don't want to have any breaking changes.

    If you are a maintainer of a #PHP library and #backwardcompatibility is important to you, then check it out on #packagist:

    packagist.org/packages/art4/re

    Happy new year! 🥳

  18. RE: infosec.exchange/@art4/1157471

    Just in time for the end of 2025 (at least in my time zone), I released version 1.0.0 of my new #RectorExtension that replaces the native type declaration set. The special thing about it: no breaking changes!

    This means: no changes to parameter types or return types if your class/method is not private or final. This is particularly important for library maintainers who want to use #Rector but don't want to have any breaking changes.

    If you are a maintainer of a #PHP library and #backwardcompatibility is important to you, then check it out on #packagist:

    packagist.org/packages/art4/re

    Happy new year! 🥳

  19. I'm currently working on a #RectorExtension that replaces the native type declaration set. The special thing about it: no breaking changes!

    This means: no changes to parameter types or return types if your class/method is not private or final. This is particularly important for library maintainers who want to use #Rector but don't want to have any breaking changes.

    If you are a maintainer of a #PHP library and #backwardcompatibility is important to you, then check it out on #packagist: packagist.org/packages/art4/re

    And feel free to give me feedback.

  20. I'm currently working on a #RectorExtension that replaces the native type declaration set. The special thing about it: no breaking changes!

    This means: no changes to parameter types or return types if your class/method is not private or final. This is particularly important for library maintainers who want to use #Rector but don't want to have any breaking changes.

    If you are a maintainer of a #PHP library and #backwardcompatibility is important to you, then check it out on #packagist: packagist.org/packages/art4/re

    And feel free to give me feedback.

  21. How to use local packages in Composer: a guide for PHP developers

    When working on a PHP project, it’s common to rely on external libraries published on Packagist. Composer makes installing and managing these dependencies effortless. But what if you need to work with a dependency locally, outside Packagist?

    dev.to/robertobutti/how-to-use

    #php #packagist #composer #opensource

  22. Woot! Abivia Ledger for Laravel passes 25K downloads through Packagist!

    This makes it the most popular piece of open source code I've written, ever. Also apparently one of the most bug-free. Just 12 issues on GitHub in over three years, and most of those not related to bugs.

    My personal mission to help developers avoid building ill-conceived accounting logic into their applications continues!

  23. Woot! Abivia Ledger for Laravel passes 25K downloads through Packagist!

    This makes it the most popular piece of open source code I've written, ever. Also apparently one of the most bug-free. Just 12 issues on GitHub in over three years, and most of those not related to bugs.

    My personal mission to help developers avoid building ill-conceived accounting logic into their applications continues!

    #PHP #Laravel #packagist #accounting

  24. tomkyle/binning – Determine optimal number of bins 𝒌 for #histogram #creation and optimal bin width 𝒉 using various statistical methods in #PHP.

    Included methods: Sturges’ Rule, Doane’s Rule, Freedman-Diaconis Rule, Terrell-Scott’s Rule, Rice Rule, Scott’s Rule, and Square Root Rule.

    GitHub: github.com/tomkyle/binning
    Issues: github.com/tomkyle/binning/iss

    Available on #packagist via #composer. Heavily inspired by markrogoyski/math-php but written for #PHP 8.3+. — #math #statistics

  25. tomkyle/binning – Determine optimal number of bins 𝒌 for #histogram #creation and optimal bin width 𝒉 using various statistical methods in #PHP.

    Included methods: Sturges’ Rule, Doane’s Rule, Freedman-Diaconis Rule, Terrell-Scott’s Rule, Rice Rule, Scott’s Rule, and Square Root Rule.

    GitHub: github.com/tomkyle/binning
    Issues: github.com/tomkyle/binning/iss

    Available on #packagist via #composer. Heavily inspired by markrogoyski/math-php but written for #PHP 8.3+. — #math #statistics