Building a stronger security process for Meteor

1.We/Researcher/AI finds a core package vulnerability and reports to us
We can enable the Private vulnerability reporting from github and use it similar as @xet7 shared, so we can automated it with LLM, creatting a private fix-PR in the same moment we receive the report.
BTW I would like to know what tools exists around code-security, woulbe be nice have an attacker LLM reporting issues and a defensive LLM solving them.
I cant see how a security fix can break the meteor version but it’s a problem for the another moment lol

B) We/Researcher/AI find a non-core package vulnerability and reports to us; How could we fix this? Should we fix this? Should we fork and call it a day? What if our fix actually breaks the package? I think this is a very important conversation we should be having, especially now that AIs are VERY good at security stuff.
IMO we cant garantee the security of a non-core package and we shouldnt fix it, we just mantain pkgs inside meteor org. Imagine the scenario, 1 popular npm pkg gets vulnerable, how many pkgs should we update/fix? it’s a lot, we havent capacity for that.

BTW I would like to know what tools exists around code-security, woulbe be nice have an attacker LLM reporting issues and a defensive LLM solving them.

  • GitHub Dependabot and CodeQL
  • WeKan tests that are run with build.sh of repo wekan/wekan, those check that those 61 vulnerabilities at wekan/wekan/security are not reintroduced to code

https://wekan.fi/hall-of-fame/

I’m very interested in this also. The most recent info I’ve seen is that LLMs are, of course, great at discovering vulnerabilities, but not yet good at patching them.

Per Gemini, cited on this forum post:

While every engineering team would buy a magic button that instantly fixes vulnerable code, the reality is that generative AI is currently much better at breaking things than fixing them.

More details at the link.

But… that was 22 days ago. Things may have improved since then!

@vikr00001

The most recent info I’ve seen is that LLMs are, of course, great at discovering vulnerabilities, but not yet good at patching them.

NOTE: Also other AI can fix security issues, OpenAI Codex ChatGPT is NOT the only one. Most AI is trained with same code from Internet. Also Claude has fixed many security issues already.

For WeKan, when I have received responsible security disclousure, Claude and ChatGPT Pro have fixed many vulnerabilities, and those security researchers have confirmed that those vulnerabilities are now fixed. AI has added tests, that check that those vulnerabilities are not reintroduced to codebase. If someone tries to override permissions, those attempts are logged to Admin Panel Problems Security.

1 Like

Good to hear! Please let us know of any results in case you try out the new chatGPT Astra model.

@vikr00001

Good to hear! Please let us know of any results in case you try out the new chatGPT Astra model.

I don’t know yet how to try Astra. I use VSCodium Flatpak Sandbox at Asahi Fedora.

Why Asahi Fedora or Asahi Ubuntu

Apple Silicon is silent.

Linux filesystem is fast.

Flatpak has sandboxing for VSCodium.

Why not macOS

macOS asks a lot of permissions.

APFS filesystem previously corrupted my local Thunderbird emails.

APFS filesystem is very slow.

Why not Win11

NTFS filesystem is slow.

Installing Meteor is slow.

Why not Omarchy Mac

Snap does not work well enough. I build WeKan Snap packages.

Snap: snapd is installable from the AUR, but it is not recommended for Arch Linux, especially not on Hyperland (there are AppArmor, cgroups, and boot issues).

For maintaining, I use Claude for OSS, ChatGPT for OSS, etc, listed at WeKan sponsors page:

https://wekan.fi/sponsors/

2 Likes

I don’t see it in Codex yet either.

Right now the release process for core packages and the Meteor bundle is too slow and requires a lot of work.

Meteor needs to move towards a leaner and lighter architecture extracting core packages (at the very least) to NPM; that way, vulnerable packages can be auditable and addressed granularly.

Bundled tooling like Node.js and Mongo should be able to be upgraded independently; they should be only batteries included recommendations, but we should have good tooling for replacement as well as documentation.

I would completely get rid of atmosphere, phasing out into a new more modern NPM based plugin system, there is a lot of effort being put into NPM security and it’s the de facto standard, where most security tooling speaks the same language.

Making the architecture simpler there would be a great start IMO.

Not to mention the business case, Meteor is not a packages product, and I believe that trying to keep its own thing is actually in the way of security and fast iteration.

A few years back we had talked about this, I wonder how far it got @nachocodoner

1 Like

For a long time, the community has discussed what to do with this Meteor-specific system. Some prefer relying on NPM, and it is true that Atmosphere packages fit some cases better than others. Still, controlling the Meteor lifecycle remains important, as seen with Rspack integration, the current CapacitorJS work, build-time asset serving, runtime module loading for client and server, and Meteor’s integrated testing setup with MongoDB.

This dependency is still a topic. The Meteor core team has not decided to move fully to NPM, as the roadmap focuses on broader priorities like reactive performance, native experience, TypeScript, and testing. A full migration does not seem very realistic, since it would add burden and breaking changes for a community that has already dealt with this for a long time. AI might help, but there is still no clear gain compared to focusing on core improvements, developer experience, and product-oriented features.

From: Atmosphere CLI improvements: interactive search and install from git

My take on Atmosphere packages is basically the above. I agree with this long-term vision, and it would be really good to move towards NPM only, with security auditing and fixes that we would get for free, along with many other benefits. I also agree that making core packages and bundled tooling more independent could help the release process and allow things like Node.js or MongoDB to evolve with less coupling. We are doing this though with other modern integrated tool like Rspack, CapacitorJS, etc.

However, the effort required to reach that point is huge and could have a strong impact on the Meteor community and the migrations needed, raise your hand/like if you’re not tired of breaking changes since the Meteor 3 async transition, bundler changes, and so on. Until now, the incremental and more effective modernization path has been to keep Atmosphere packages, since they control the Meteor lifecycle well and can properly support other integrations and benefits, as happened with Rspack, CapacitorJS, and soon Rstest. Atmosphere is well-tested and mature, and in the short term we can still build tailored improvements for package discoverability, or even security auditing and fixes for our specific case, as discussed here.

With AI, we could likely move faster and more reliably at some point when dealing with the existing architecture. But I would still try to ship and honor small, quick gains around what we already have, what the community knows and understands, and make smaller and cheaper changes in terms of time, resources, and migrations.

We talk many times about reworks, but touching the architecture of an existing legacy system can be really tricky. The only way we have been able to advance over these years has been by moving piece by piece and prioritizing specific areas. Maybe after we wrap up native, testing, and other fronts, we can dedicate more effort to POCs for replacing Atmosphere with NPM. We are also very open to receiving them and evaluating a strategy for small adoption across the different cases. But this is definitely a hard task that will require strong attention. Maybe for security alone, though, it could be worth the time.

I also personally think Meteor should enter a phase where it can enjoy what has already been modernized and have time to recover its presence in the JS ecosystem. Major refactors would also take resources away from those fronts. Anyway, this is a good area for discussion and, above all, for POCs that let us play with initial implementations upfront.

2 Likes

I wonder if Meteor can gain traction again without those kinds of refactors, I don’t see this as just a simple architectural improvement, I see it as a trust improvement.

Of course, I understand the magnitude of the task, but it can be done gradually, I can certainly help.

The most important part is the core packages, we could map the most critical ones, where vulnerabilities would be the most gnarly and start from there.

I can prepare a Plan + PoC by the end of the week.

By the way, for the consumer it should be a seamless transition, the difference should be that they can easily know a package is vulnerable and upgrade the version faster and more easily for example.

2 Likes

I just figured out, that I could login to ChatGPT with webbrowser, and at Work tab give it project where it works towards project done, using many subagents to speed up finishing project. I can also shutdown my laptop. This is so cool, I don’t need to use limited resources of my laptop. 32 GB RAM just is not enough. I did just write what GitHub repo to clone, and I can later download .zip package of project and commit myself. I did not need to give ChatGPT direct commit access to GitHub.

I built this which gives me full control of a Mac Studio M3 Ultra + Static IP (public nginx) + Tailscale (private network), no matter how much power ChatGPT can give you it will always be consumer level, which needs to be profitable for them and god knows how they handle the data.

@leonardoventurini

no matter how much power ChatGPT can give you it will always be consumer level, which needs to be profitable for them and god knows how they handle the data.

My projects are WeKan FLOSS prototypes with MIT license, there is not anything secret. For those, faster progress is nice at ChatGPT remote servers.

For private projects, that needs local models, not connected to Internet.

For those, faster progress is nice at ChatGPT remote servers.

Well, that was fast progress. For a little time, with many subagents. But then:

Your usage limit is full. You can continue by adding credits or try again on September 14, 2026 at 10:29 AM.

I feel like these are some credits for code lottery.

Hmm. Well, I have some usage at Claude left. After that, I may try some local AI. After that, I have my own brains to figure out all this slop.

I was referring to compute and data, local AI is still crap mostly, unless you have a rack of NVIDIA GPUs; I can run some big local models on 256gb of RAM, but they are too slow for my liking. Besides, models today are at 1-3 trillion parameters, not even the 1.5tb Mac Studio would run those. Local AI can be helpful but it’s more like pre-November mainstream agentic AI IMO. Unless you have an extremely sensitive application, then you need local/on-premises, and probably should have the budget for your own AI infra then.

Because I’m out out ChantGPT tokens, I’m currently using Claude Sonnet 5 Low, because it uses least amount of tokens, and works well enough.

Using High setting and multiple subagents uses very big amount of tokens very fast.

I believe the outcome will always depend heavily on how these tools are used. In my view, discovering vulnerabilities often takes more time than fixing them. Attacking a framework requires analyzing many different components and scenarios; once an issue has been identified and understood, the appropriate fix is often much clearer.

An LLM may not always be able to implement the right fix on its own, but an experienced human can guide the implementation, review the changes, and validate the result.

We have already automated much of this process with AI. Today, the full release process takes about an hour to complete. That is a significant improvement, although there is still plenty of room to make it faster and more reliable.

This is something I would really like to see in Meteor someday. It would undoubtedly require a major effort, but with the newest models, it may be easier than we imagine and perhaps possible to achieve gradually without introducing breaking changes.

I believe this is a direction many people in the community would welcome. However, to be transparent, it is not our highest priority right now, as we are already stretched thin delivering the current roadmap.

I encourage you to continue the discussion in this forum thread. I would be happy to help coordinate a community-led initiative exploring this direction. However, given our current priorities, the initiative would need to be driven primarily by the community.

4 Likes

@italojs @nachocodoner What are the current roadmap priorities? Will check the thread, thank you!

this is the roadmap for 2026 Roadmap | Docs we still didnt discuss about 2027