What happened here?

Regular readers will have noticed that we’ve been offline for several days. As you can see, during that time, we’ve made some major changes to the site, and though the design has changed substantially, we’ve made even more dramatic changes in the back-end. We are now running our 6th major iteration of OSNews. It all was precipitated by messages from readers we’ve received over the past few weeks alerting us that they’ve been getting spam, phishing attempts, and some weak-sauce cyber-extortion emails at addresses that were unique to their OSNews accounts. Read on for more.

It certainly seems like we’ve had a breach. Our best guess is that someone was able to exploit a vulnerability in old, unmaintained code in the site’s content management system, and made off with at least some user data, which may be as little as a few user records or, at worst, our entire database. Your email addresses were in there, and the encryption on the passwords wasn’t up to modern standards (unsalted SHA1). The truth is that once we concluded it was likely that we were breached, our small volunteer team decided it was better to go offline than it was to learn the avenue of exploit, given that we had no interest in continuing to rely on the aged codebase.

Other than potential spam, though, we’re not aware of any other nefarious use of your data, we don’t store much beyond email addresses and passwords, but nonetheless, we’ve very sorry that we weren’t more diligent over the years with keeping in lockstep with best practices with respect to site security.

Upgrading the site has been long overdue. In fact, we’d made a serious attempt at discontinuing the old CMS a few years ago, and a few years before that, and it got bogged down both times by the fact that we depend on volunteer help and we all have real lives. The OSNews system is old. The last meaningful update to the codebase was in 2008, with much of the logic based on the 2005 “version 3” rewrite of OSNews. File modification times of 2014 or older were almost always small tweaks or bug fixes. The site was largely written for PHP 4 and it never had a proper maintenance plan. We’ve now migrated the site to WordPress. For all its faults, WP is at least a known quantity. Many thanks to Adam Scheinberg for spending so many hours over his winter break migrating the data from the old CMS to WordPress.

To be perfectly honest, when contemplating what needed to be done to properly move the site to a new platform, I considered just throwing in the towel and going offline permanently. Revenues from advertising don’t cover expenses, and though this could probably be rectified by exploring more creative sponsorship approaches, I don’t have the time. I’m currently trying to get a startup off the ground. I love being a part of this community, and I’m willing to continue to invest in it, but I only want to keep it going if it’s going to remain vibrant and meaningful.

In order to keep your history from the old site, and to make that re-association process as painless as possible, we’ve written a very simple account migration tool. The tool checks your login against a very stripped down version of our old user table and then re-encrypts your password. When you login to the new OSNews site, your password will be encrypted using a modern secure algorithm, which is currently PHP’s password_hash function, which uses Blowfish or Extended DES and can change over time so we don’t repeat any past mistakes.

I’d like to conclude this update with a cry for help. The only way to achieve this dream of vibrancy and meaningfulness is with your help. One of the advantages of the new platform is that it will make it easier for us to include new contributors and do experiments. What can you do?

  • Read and comment every day
  • Submit news
  • Share interesting stuff on the site with your friends
  • Write an original article
  • Suggest someone interesting for us to interview, and recommend some questions we can ask
  • Suggest new topics you think we should cover with more regularity
  • Volunteer to be an editor and post news everyday
  • Help us with ideas on how we can make money. (sponsorships, ads, partnerships, whatever)
  • Need a part time job? I’ll hire you to promote the site and manage our sponsorship and advertising relationships.

211 Comments

  1. 2019-01-02 9:26 pm
    • 2019-01-02 9:58 pm
    • 2019-01-03 8:13 am
      • 2019-01-03 9:17 am
      • 2019-01-03 9:23 am
      • 2019-01-03 10:30 am
      • 2019-01-03 12:15 pm
      • 2019-01-03 3:16 pm
      • 2019-01-04 2:39 pm
    • 2019-01-03 10:33 am
      • 2019-01-03 12:13 pm
      • 2019-01-03 3:25 pm
      • 2019-01-03 6:58 pm
      • 2019-01-03 10:11 pm
    • 2019-01-03 5:18 pm
    • 2019-01-05 10:57 am
    • 2019-01-07 9:19 pm
  2. 2019-01-02 9:39 pm
  3. 2019-01-02 9:59 pm
  4. 2019-01-02 10:23 pm
  5. 2019-01-02 11:42 pm
    • 2019-01-03 2:32 am
      • 2019-01-09 9:25 am
    • 2019-01-03 9:21 am
    • 2019-01-03 2:59 pm
    • 2019-01-05 1:11 am
  6. 2019-01-03 12:05 am
  7. 2019-01-03 1:52 am
    • 2019-01-03 2:28 am
      • 2019-01-03 4:49 am
        • 2019-01-03 9:21 am
        • 2019-01-03 12:38 pm
        • 2019-01-04 4:00 am
      • 2019-01-04 6:21 pm
      • 2019-01-05 10:31 pm
    • 2019-01-03 12:37 pm
  8. 2019-01-03 2:11 am
    • 2019-01-03 2:22 am
    • 2019-01-08 11:25 pm
  9. 2019-01-03 3:14 am
    • 2019-01-03 12:40 pm
  10. 2019-01-03 4:25 am
    • 2019-01-03 12:41 pm
  11. 2019-01-03 4:31 am
    • 2019-01-03 12:42 pm
      • 2019-01-04 3:37 am
      • 2019-01-04 7:57 am
      • 2019-01-06 3:17 am
  12. 2019-01-03 4:53 am
    • 2019-01-03 1:50 pm
  13. 2019-01-03 5:17 am
  14. 2019-01-03 5:20 am
    • 2019-01-03 5:22 am
      • 2019-01-03 5:23 am
        • 2019-01-03 7:27 am
        • 2019-01-03 3:48 pm
  15. 2019-01-03 5:22 am
    • 2019-01-03 1:51 pm
      • 2019-01-03 7:43 pm
  16. 2019-01-03 5:26 am
    • 2019-01-03 3:50 pm
      • 2019-01-03 7:40 pm
        • 2019-01-03 11:41 pm
  17. 2019-01-03 6:28 am
  18. 2019-01-03 6:51 am
  19. 2019-01-03 7:05 am
  20. 2019-01-03 7:25 am
  21. 2019-01-03 7:25 am
  22. 2019-01-03 7:36 am
  23. 2019-01-03 7:48 am
    • 2019-01-03 8:06 am
    • 2019-01-03 9:13 am
    • 2019-01-03 9:34 am
      • 2019-01-03 7:46 pm
      • 2019-01-03 10:27 pm
    • 2019-01-03 9:36 am
      • 2019-01-04 3:24 pm
      • 2019-01-07 6:27 pm
    • 2019-01-03 3:23 pm
    • 2019-01-03 10:17 pm
    • 2019-01-06 8:43 pm
      • 2019-01-06 9:19 pm
        • 2019-01-07 7:39 am
        • 2019-01-07 10:23 am
          • 2019-01-08 4:22 am
  24. 2019-01-03 8:16 am
  25. 2019-01-03 8:37 am
  26. 2019-01-03 8:54 am
  27. 2019-01-03 9:31 am
    • 2019-01-03 9:42 am
      • 2019-01-04 11:50 am
    • 2019-01-03 10:36 am
  28. 2019-01-03 9:49 am
    • 2019-01-03 9:55 am
      • 2019-01-03 9:57 am
        • 2019-01-03 9:59 am
          • 2019-01-03 9:59 am
          • 2019-01-03 10:32 am
      • 2019-01-03 10:06 am
  29. 2019-01-03 9:51 am
  30. 2019-01-03 10:20 am
  31. 2019-01-03 10:32 am
    • 2019-01-03 11:39 am
      • 2019-01-03 12:26 pm
        • 2019-01-03 5:34 pm
    • 2019-01-04 7:05 pm
  32. 2019-01-03 10:37 am
  33. 2019-01-03 10:55 am
  34. 2019-01-03 11:14 am
    • 2019-01-03 12:30 pm
      • 2019-01-03 9:40 pm
  35. 2019-01-03 12:36 pm
  36. 2019-01-03 12:42 pm
  37. 2019-01-03 12:50 pm
  38. 2019-01-03 1:15 pm
  39. 2019-01-03 1:46 pm
  40. 2019-01-03 1:50 pm
  41. 2019-01-03 2:45 pm
    • 2019-01-03 2:55 pm
      • 2019-01-03 3:32 pm
        • 2019-01-03 3:37 pm
        • 2019-01-03 3:43 pm
        • 2019-01-03 6:27 pm
        • 2019-01-03 10:16 pm
        • 2019-01-03 11:27 pm
      • 2019-01-03 9:08 pm
  42. 2019-01-03 3:45 pm
  43. 2019-01-03 4:28 pm
  44. 2019-01-03 4:56 pm
    • 2019-01-08 1:00 pm
  45. 2019-01-03 6:12 pm
    • 2019-01-04 12:06 am
      • 2019-01-05 6:19 am
  46. 2019-01-03 6:27 pm
    • 2019-01-03 10:16 pm
  47. 2019-01-03 7:51 pm
    • 2019-01-03 10:15 pm
  48. 2019-01-03 8:07 pm
    • 2019-01-03 9:41 pm
      • 2019-01-04 8:40 am
    • 2019-01-04 8:18 pm
  49. 2019-01-03 10:00 pm
    • 2019-01-03 10:19 pm
      • 2019-01-04 9:42 am
        • 2019-01-04 10:35 am
    • 2019-01-04 7:55 am
  50. 2019-01-03 11:26 pm
  51. 2019-01-04 12:20 am
  52. 2019-01-04 2:12 am
  53. 2019-01-04 3:12 am
    • 2019-01-06 6:01 am
  54. 2019-01-04 4:38 am
    • 2019-01-04 10:41 am
      • 2019-01-07 8:26 am
  55. 2019-01-04 4:41 am
  56. 2019-01-04 5:20 am
    • 2019-01-04 10:39 am
  57. 2019-01-04 6:59 am
  58. 2019-01-04 8:37 am
    • 2019-01-04 10:40 am
  59. 2019-01-04 8:41 am
    • 2019-01-04 10:37 am
  60. 2019-01-04 9:13 am
  61. 2019-01-04 9:39 am
  62. 2019-01-04 9:46 am
  63. 2019-01-04 9:53 am
  64. 2019-01-04 11:09 am
  65. 2019-01-04 11:23 am
  66. 2019-01-04 12:30 pm
  67. 2019-01-04 1:02 pm
    • 2019-01-04 4:45 pm
      • 2019-01-04 5:02 pm
        • 2019-01-05 5:39 am
  68. 2019-01-04 3:11 pm
    • 2019-01-04 8:03 pm
      • 2019-01-04 8:14 pm
        • 2019-01-05 9:33 am
          • 2019-01-05 11:42 am
          • 2019-01-05 6:40 pm
          • 2019-01-05 7:50 pm
        • 2019-01-07 7:11 pm
  69. 2019-01-04 3:50 pm
  70. 2019-01-04 4:14 pm
  71. 2019-01-04 5:29 pm
    • 2019-01-04 8:07 pm
      • 2019-01-04 8:25 pm
        • 2019-01-07 7:17 pm
  72. 2019-01-04 6:24 pm
    • 2019-01-07 8:09 am
  73. 2019-01-04 10:45 pm
  74. 2019-01-05 7:51 am
  75. 2019-01-05 11:24 am
    • 2019-01-07 8:59 am
  76. 2019-01-05 1:34 pm
  77. 2019-01-05 7:44 pm
  78. 2019-01-05 10:26 pm
  79. 2019-01-06 5:37 am
    • 2019-01-06 11:26 am
  80. 2019-01-07 8:35 am
  81. 2019-01-07 3:36 pm
    • 2019-01-08 9:42 am
  82. 2019-01-07 7:26 pm
    • 2019-01-08 11:16 am
    • 2019-01-08 11:38 am
      • 2019-01-08 12:37 pm
        • 2019-01-08 1:42 pm
  83. 2019-01-10 8:40 am
  84. 2019-01-10 3:36 pm