{
  "id": 18304677,
  "title": "Sshole",
  "url": "https://urgent.news/2026/11/05/sshole",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-11-05T12:19:02.000Z",
  "source": {
    "name": "Hacker News",
    "slug": "hacker-news",
    "url": "https://sshhole.com/"
  },
  "original_language": "en",
  "account": "In 1980, Bill Joy introduced a * symbol for an account called daemon in Unix, which was not accessible via login. The real names followed in the next field, with the password hash stored in /etc/shadow. Typing a password would hash it with the same salt and compare the result to the stored hash. If the field contained a * symbol, there was nothing to match, rendering any password incorrect. However, some programs did not check for NULL and crashed instead. To prevent this, musl libc, used in Alpine Linux, modified crypt() to return a single character that could never match a real password. Additionally, musl capped the password length at 256 bytes to avoid server slowdowns caused by longer passwords. In 2016, CVE-2016-6210 was discovered, where a time-consuming hash calculation was used to determine if a user existed, leading to a noticeable delay for valid users and instant denial for non-existent ones. In 2019, Alpine Linux faced CVE-2019-5021, where no root password was set, allowing unauthorized access via SSH keys. Alpine addressed this by locking the root account with an exclamation mark (!) but this also hindered SSH key authentication. In 2022, Alpine Linux switched root to a * symbol while locking it, allowing SSH key access once again. Despite these issues, many distros bypass crypt() checks for passwords starting with *, leading to potential security vulnerabilities.",
  "summary": null,
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}