A license can share code, but it cannot control every use
Open-source software lets people inspect, modify, and redistribute its code under a license. That openness makes a project easier to study and improve—but it also means the same tool can be adapted for purposes its creators oppose. A program built for security testing, for example, may help defenders find weaknesses and help attackers exploit them.
The tension is built into the model. Once code has been released under a license that permits broad reuse, the original maintainers may have little practical control over copies already in circulation. A restriction aimed at harmful users can also make the software less useful to researchers, companies, or ordinary users, and may conflict with widely used definitions of open source, which expect licenses to allow use for any purpose.
Growth turns a community choice into a governance problem
Early on, a small group may know who is maintaining the project and why it exists. As adoption expands, contributions and requests come from people with different stakes: users want reliability, companies may want features on their own schedules, and maintainers must decide what work they can sustain. A decision about a new capability or a license change can affect thousands of downstream projects that depend on the code.
That dependence makes ethical limits difficult to enforce. If a project changes its terms, older versions may remain available, and users can sometimes create a separate version, or fork, that continues in a different direction. The choice is not simply “allow” or “ban”; it may determine who can participate, whether the project remains compatible with other open-source tools, and how much influence its maintainers retain.
Free to use does not mean free to maintain
Large technology companies can gain substantial value from software maintained by others, while the people doing the maintenance may receive little money or help in return. Companies may contribute code, funding, or engineering time, but that support is not automatic—and it may focus on the features they need. This leaves maintainers balancing public benefit against the practical costs of reviewing changes, fixing vulnerabilities, and responding to users.
The deeper dilemma is that openness distributes both power and responsibility unevenly: anyone may be able to build on the code, but a small number of maintainers can still bear the work and the consequences of deciding what comes next.






