215 stories
·
1 follower

10 Cute Japanese Words: Kawaii Vocabulary for Beginners

1 Share
Read the whole story
jhunorss
1 day ago
reply
Share this story
Delete

Agent Skills in IntelliJ IDEA

1 Share

Agent Skills have become a key building block of the Agent Harness for AI-driven agentic development. They give AI agents additional capabilities and knowledge, enabling them to complete tasks in a way that aligns with your preferences.

If you are new to Agent Skills, I recommend reading AI-Assisted Java Application Development with Agent Skills first.

IntelliJ IDEA and other JetBrains IDEs include AI Assistant, which helps developers with AI agentic development. AI Assistant provides an elegant and secure way to use and manage Agent Skills.

If you missed the announcement, see Introducing the Skill Manager and Skill Repository.

In this article, we will explore:

  • How to install Agent Skills via the Skills Manager.
  • Managing skills with the Skill Repository.
  • Installing skills globally, per project, or per agent.
  • Adding your own Skill Repository.

Skills Manager

AI Assistant supports a wide range of AI agents through ACP (Agent Client Protocol).

The Skills Manager in AI Assistant lets you view the list of available skills and install them.

If you have already installed Agent Skills globally, the Skills Manager detects them and helps you install them as IntelliJ IDEA agent skills.

You can install a skill globally, at the project level, or per agent.

Skill Repositories

The Skill Repository lets you manage a list of locations where your verified skills are stored.

By default, JetBrains provides a Skill Repository hosted at https://github.com/JetBrains/skills.

These skills are verified by JetBrains for security vulnerabilities.

It is essential to check for security issues before using agent skills downloaded from the internet. A better approach is to maintain an organization-wide Skill Repository, verified by your team, and add it to the Skill Repository list.

Agent Skills in action

Based on the prompt description, the AI agent automatically detects and uses relevant agent skills.

For example, I installed spring-boot-skill, and when I asked the AI agent to write tests for Spring Boot REST API endpoints, it used the spring-boot-skill.

You can also explicitly invoke an agent skill using $skill-name [prompt] with Codex or `/skill-name [prompt]` with Claude.

Summary

AI Assistant’s Skills Manager makes agent skills part of your regular IDE workflow. You can discover, install, and manage skills without leaving IntelliJ IDEA, then make them available globally, for a specific project, or only to a particular AI agent. The AI agent can automatically select a relevant skill from your prompt, while explicit invocation gives you control when you need it.

Just as importantly, the Skill Repository provides access to skills verified by JetBrains for security vulnerabilities. Teams can also add their own repositories containing internally reviewed skills. This makes it easier to benefit from reusable agent capabilities while maintaining control over which skills developers use in their projects.

Read the whole story
jhunorss
1 day ago
reply
Share this story
Delete

Haltung erlaubt: Keine Angst vor dem Neutralitätsgebot – ein Leitfaden

1 Share

Die AfD versucht, zivilgesellschaftliche Akteure mit Verweis auf ein vermeintlich allgemeingültiges Neutralitätsgebot zu verunsichern. Doch im Gegenteil gilt: Wer menschenfeindliche Positionen zurückweist, erfüllt seine Pflicht zur Verteidigung des Grundgesetzes.

Die AfD beruft sich seit einigen Jahren strategisch auf „Neutralität“, um Kritik an ihr zu delegitimieren und zivilgesellschaftliche Akteur*innen einzuschüchtern. Das erzeugt Verunsicherung: Muss ich in Schule, Verwaltung, Hochschule oder Verein „neutral“ bleiben, während andere immer radikalere Positionen vertreten? Nein! In einer wehrhaften Demokratie gibt es keine Pflicht zur Neutralität gegenüber menschenverachtenden Positionen. Im Gegenteil: Häufig ist ein klares Einstehen für die freiheitlich demokratische Grundordnung (FDGO) sogar Pflicht.

Es gibt nicht das eine Neutralitätsgebot

Auch wenn ständig davon die Rede ist: Ein allgemeines Neutralitätsgebot steht nicht im Grundgesetz. Neutralitätspflichten gelten nur in eng umgrenzten Situationen, in denen eine besondere Nähe zum Staat besteht. Dann kann es rechtlich geboten sein, keine politische Partei zu bevorzugen oder zu benachteiligen und vor allem keine staatlichen Ressourcen zu nutzen, um Parteipolitik zu machen oder eigene parteipolitische Präferenzen zu bewerben. Das betrifft insbesondere Regierungsmitglieder, staatliche Öffentlichkeitsarbeit, Beamt*innen oder die steuerliche Gemeinnützigkeit von Vereinen. Außerdem gibt es Pflichten zur Sachlichkeit oder Mäßigung, etwa für Beamt*innen oder bei amtlichen Verlautbarungen. 

Freiheitlich demokratische Grundordnung: Warum klare Haltung erlaubt und nötig ist

Aber selbst dort, wo Neutralität verlangt wird, wird sie durch den Schutz der freiheitlich demokratischen Grundordnung begrenzt. Die FDGO umfasst die zentralen Prinzipien des Grundgesetzes: Schutz der Menschenwürde, Demokratieprinzip und Rechtsstaatsprinzip. Menschenwürdefeindlich sind etwa Positionen, die von einem ethnisch homogenen „Volk“ ausgehen, Zugewanderten die Zugehörigkeit absprechen oder Grundrechte nur einer vermeintlichen „Volksgemeinschaft“ zubilligen. Dazu gehören auch rassistische, antisemitische, antimuslimische, antiziganistische, misogynen, ableistische oder transfeindliche Forderungen.

Für Beamt*innen und viele Beschäftigte im öffentlichen Dienst gilt eine Pflicht zur Treue zur Verfassung. Sie sollen also nicht neutral gegenüber Verfassungsfeinden sein, sondern aktiv die Werte des Grundgesetzes schützen. Aus dieser wehrhaften Demokratie folgt: Wer im Dienst menschenwürdefeindliche Aussagen klar zurückweist, verletzt nicht die Neutralität, sondern erfüllt seine Pflicht. 

Regierung, Amt und Partei: Wo Neutralität gilt – und wo nicht

Für die Chancengleichheit der Parteien ist wichtig, dass staatliche Ressourcen und die Autorität eines Regierungsamtes nicht zur direkten Bekämpfung einer bestimmten Partei eingesetzt werden. Deswegen hat das Bundesverfassungsgericht kritische Äußerungen von Regierungsmitgliedern in offiziellen Formaten gegenüber der AfD teilweise als Verstoß gegen die Chancengleichheit gewertet. Es ging dabei jedoch immer um staatliche Öffentlichkeitsarbeit: die Webseite des Innenministeriums, eine Pressekonferenz von Angela Merkel, eine Pressemitteilung der Berliner Bildungsministerin zur AfD.

Doch das Landesverfassungsgericht Rheinland-Pfalz hat klargestellt, dass auch eine Verletzung der Chancengleichheit der Parteien gerechtfertigt sein kann, wenn sie dem Schutz der FDGO dient. So war der Aufruf der ehemaligen Ministerpräsidentin Malu Dreyer, an einer Demonstration „gegen Rechts“ teilzunehmen und rechtsextreme Deportationsfantasien klar zu benennen, zulässig, weil er dem Schutz der freiheitlich demokratischen Grundordnung diente und nicht willkürlich oder unsachlich war.

Das bedeutet: Wer in amtlicher Funktion spricht, muss zwar besonders auf die Chancengleichheit der Parteien achten, darf aber menschenwürdewidrige Positionen klar benennen – auch wenn dies der Haltung einer einzelnen Partei widerspricht. 

Schule: Wie Lehrkräfte Haltung zeigen können

Gerade an Schulen versucht die AfD, das Neutralitätsgebot zur Einschüchterung zu nutzen, etwa über Meldeportale, in denen Schüler*innen Lehrkräfte wegen angeblicher „Parteinahme“ melden sollten. Tatsächlich sind Lehrkräfte ähnlich wie Beamt*innen zur Treue zur Verfassung verpflichtet, und Schulgesetze verlangen, dass Unterricht der Achtung und Verwirklichung der Werte des Grundgesetzes dient.

Die Leitlinie dafür ist seit Jahrzehnten der sogenannte Beutelsbacher Konsens, der Grundsätze für die politische Bildung vorgibt: Schüler*innen sollen nicht „überwältigt“, also etwa mit einer Meinung so überrumpelt werden. Themen, die gesellschaftlich umstritten sind, sollen auch als kontrovers und nicht nur einseitig dargestellt werden. Und Schüler*innen sollen zur eigenen demokratischen Urteilsbildung befähigt werden. Das heißt aber nicht, dass rechtsextreme, rassistische oder menschenfeindliche Aussagen im Unterricht „neutral“ stehen gelassen werden müssten. Im Gegenteil: Sie sollen eingeordnet und mit den Werten des Grundgesetzes konfrontiert werden.

Gerichtliche Entscheidungen haben bestätigt, dass politische Zeichen, die dem Schutz von Minderheiten dienen – wie eine Progress-Pride-Flagge in einem Grundschulhort –, zulässig sind. Ebenso kann eine Schule ein Praktikum bei einem Abgeordneten der AfD untersagen, gerade wenn der entsprechende Landesverband der Partei als gesichert rechtsextrem eingestuft ist. Lehrkräfte dürfen also im Rahmen ihres Bildungsauftrags klar gegen Rechtsextremismus auftreten, solange sie sachlich bleiben, Schüler*innen nicht überwältigen und kontroverse Themen als solche kenntlich machen.

Hochschule: Wissenschaftsfreiheit und politisches Engagement

An Hochschulen gilt die Wissenschaftsfreiheit, die nicht durch eine allgemeine Neutralitätspflicht begrenzt wird. Im wissenschaftlichen Bereich gibt es keine Inhaltskontrolle im Sinne einer politischen Mäßigung. Professor*innen und Studierende dürfen forschen, veröffentlichen und argumentieren, auch zu Rechtsextremismus und autoritäre Tendenzen und auch ganz konkret zu Parteien.

Politisches Engagement von Studierenden – zum Beispiel Bündnisse gegen Rechts, Veranstaltungen, Banner oder Demonstrationen – steht kein Neutralitätsgebot entgegen, sondern eher Hausordnungen und hochschulrechtliche Regelungen. Manche Universitäten haben Proteste unter Hinweis auf Neutralität oder Hausordnung unterbunden, andere dulden seit Jahren politische Banner und Aktionen. Ein Gericht hat betont, dass ein Banner mit der Aufschrift „AFD-JUGEND STOPPEN“ nicht entfernt werden musste, weil die Uni politische Banner generell duldet und die Meinungsfreiheit der Studierenden sowie die Hochschulselbstverwaltung zu berücksichtigen sind.

Verfasste Studierendenschaften (AStA) haben ein hochschulpolitisches Mandat. Sie dürfen sich politisch äußern, solange ein Bezug zu den Belangen der Studierenden und zur Hochschule erkennbar bleibt. Praktisch heißt das: Proteste gegen rechtsextreme Akteur*innen, die das Campusklima, die Sicherheit oder die Chancengleichheit von Studierenden berühren, können von diesem Mandat gedeckt sein.

Remonstration: Wenn Widerspruch im Staatsdienst Pflicht ist

Für verbeamtete Personen gilt nicht nur die Pflicht zur Gesetzestreue, sondern auch zur Remonstration: Wenn Zweifel an der Rechtmäßigkeit einer Weisung bestehen, müssen sie diese gegenüber Vorgesetzten anmelden. Geschieht das nicht, kann die betroffene Person später selbst für rechtswidriges Handeln verantwortlich gemacht werden.

Wer also eine Anordnung erhält, die möglicherweise Grundrechte verletzt oder offenkundig unverhältnismäßig ist, sollte dies schriftlich begründen, eine Überprüfung verlangen und im Zweifel auch eine höhere Dienststelle einbeziehen. Wenn eine Maßnahme klar rechtswidrig bleibt, ist es möglich und geboten, die Mitwirkung zu verweigern. Ein Beispiel dafür ist der Fall geplanter Ausweisungen von Studierenden in Berlin, die nach palästina-solidarischen Protesten erfolgen sollten. Eine verantwortliche Beamtin remonstrierte, weil die Maßnahme nur auf Ermittlungsberichten ohne Verurteilung beruhte. Das Gericht stoppte später die Ausweisungen. 

Zivilgesellschaft und Vereine: Politisch aktiv trotz Gemeinnützigkeit

Zivilgesellschaftliche Organisationen werden zunehmend unter Druck gesetzt. Ein Mittel sind etwa umfangreiche parlamentarische Anfragen, in denen schon die Ausübung von Grundrechten wie der Versammlungsfreiheit mit Misstrauen betrachtet wird. Trotzdem gilt: Für Vereine gibt es kein allgemeines staatliches Neutralitätsgebot. Gemeinnützige Vereine müssen zwar parteipolitisch neutral im steuerrechtlichen Sinn bleiben, also keine einzelne Partei direkt fördern. Sie dürfen aber politisch wirken, wenn dies ihrem Satzungszweck entspricht.

Deshalb ist es wichtig, Satzungen klar zu formulieren: Wer Anti-Rassismus-Arbeit, Gleichberechtigung oder, Klimaschutz ausdrücklich als Vereinszweck in der Satzung verankert, kann zu diesen Themen auch deutlich Stellung beziehen. Die Kritik sollte sich primär gegen rechtsextreme Inhalte und menschenwürdewidriges Verhalten richten, nicht pauschal gegen eine Partei als solche. 

Fazit: Widerstand ist Pflicht

In einer wehrhaften Demokratie ist Neutralität gegenüber menschenverachtendem Verhalten keine Pflicht, sondern das Problem. Neutralitätspflichten sind eng begrenzt und können nicht als allgemeiner Maulkorb gegen Engagement für Menschenwürde und Demokratie verstanden werden. Wer sich auf die freiheitlich demokratische Grundordnung beruft, menschenwürdefeindliche Positionen klar benennt und seine Rolle reflektiert, bewegt sich in der Regel auf sicherem rechtlichen Boden.

Wenn ihr mit dem Vorwurf fehlender Neutralität konfrontiert werdet, lohnt es sich, ruhig zu bleiben, die eigene Rolle zu klären, Vorgänge zu dokumentieren und rechtliche Unterstützung in Anspruch zu nehmen. Keiner muss neutral sein gegenüber Rassismus, Antisemitismus, Sexismus oder anderen Formen von Menschenverachtung – ihr dürft, und in vielen Funktionen müsst ihr ihnen entschieden entgegentreten.

Der Gegenrechtsschutz von FragDenStaat und der Gesellschaft für Freiheitsrechte unterstützt euch, wenn Behörden autoritär handeln und eure Rechte missachten. Wir verteidigen euer demokratisches Engagement, Presse- und Wissenschaftsfreiheit gegen juristische Angriffe von rechts und informieren auch zum Neutralitätsgebot.

→ Hier gibt’s den Vortrag „Wer hat Angst vor dem Neutralitätsgebot?“ von Hannah Vos und Vivian Kube auf dem Chaos Communication Congress 39C3


❤️ Hilf mit! Stärke die Informationsfreiheit mit Deiner Spende.

Read the whole story
jhunorss
1 day ago
reply
Share this story
Delete

Dobrindts Grenzpolitik: Rechtsbruch mit Ansage

1 Share

Der Innenminister verstößt mit seiner Grenzpolitik womöglich gegen EU-Recht. Seine eigenen Fachleute warnten davor. Doch interne Dokumente zeigen das Kalkül: Bis ein Gericht das Ganze stoppt, spielt er auf Zeit. 

Keine 24 Stunden ist Alexander Dobrindt (CSU) im Amt, als er den ersten Rechtsbruch anordnet. Am 7. Mai 2025 weist der Innenminister die Bundespolizei an, Asylsuchende an den Grenzen zurückzuweisen. Ein Vorgehen, das inzwischen mehrere Gerichte für rechtswidrig erklärt haben. Nun ist klar: Dobrindts eigene Beamt*innen aus dem Innenministerium warnten, dass die Zurückweisungen rechtlich nicht haltbar sein würden. Doch dem Minister schien es nicht darum zu gehen, ob der Schritt rechtmäßig ist, sondern wie lange er sich halten lässt, bis ihn ein Gericht stoppt.  

Wir veröffentlichen die internen Dokumente zu Dobrindts Grenzpolitik. Die mehr als tausend Seiten zeigen, wie früh im Ministerium vor einem Rechtsbruch gewarnt wurde – und Dobrindt die Warnungen ignorierte. Der Spiegel hat im März bereits über die Dokumente berichtet.

Sowohl der Spiegel als auch wir haben die Dokumente über das Informationsfreiheitsgesetz erhalten – also über das Gesetz, das Dobrindt faktisch abschaffen will. Laut einem internen Dokument, über das die Tagesschau berichtet hat, sollen auch wir und unsere Anfrage-Plattform unmöglich gemacht werden. Ohne das Informationsfreiheitsgesetz wäre die folgende Rekonstruktion nicht möglich. 

Union und SPD wollen das Informationsfreiheitsgesetz entkernen. Dagegen wehren wir uns mit allen Mitteln – und Deiner Hilfe! Hier kannst Du uns unterstützen.

Neue Belege zu Anzeige

Im Juni 2025 haben wir Dobrindt wegen seiner Weisung, Asylsuchende an der Grenze abzuweisen, angezeigt. Die Staatsanwaltschaft teilte uns jedoch mit, es gebe keinen Verdacht, dass Dobrindt wissentlich rechtswidrige Weisungen erteilt habe. Die nun veröffentlichten Dokumente liefern Belege, dass Dobrindt bewusst einen Rechtsbruch in Kauf genommen hat.

Mehr Infos zur Anzeige

Damals stellten wir Anzeige, weil Dobrindt mit der Weisung Untergebene – in dem Fall Bundespolizist*innen – zu einer Straftat verleiten könnte. Die Staatsanwaltschaft hat die Anzeige geprüft, konnte aber keinen Anfangsverdacht feststellen. Es seien keine „tatsächlichen Anhaltspunkte“ gegeben, dass Dobrindt wissentlich rechtswidrige Anweisungen erteilt habe. Vielmehr dürfte er von einer Vereinbarkeit der Zurückweisungen mit dem EU-Recht ausgegangen sein. Insbesondere gebe es keine Hinweise, dass die „jeweiligen Verwaltungsmitarbeiter zu einer kategorischen Nichtanwendbarkeit des Artikel 72 AEUV“ gelangten und Dobrindt dahingehend gebrieft hätten. Das sei lediglich eine Mutmaßung des Anzeigenstellers. Die nun veröffentlichten Dokumente belegen, dass Dobrindt entgegen der Annahme der Staatsanwaltschaft Bescheid wusste und einen Rechtsbruch in Kauf nahm.

Chronologie eines Rechtsbruchs

Ende August/Anfang September 2024
Bereits während der Ampel-Regierung unter Bundesinnenministerin Nancy Faeser (SPD) prüft das Ministerium, ob es möglich ist, Asylsuchende an den Grenzen zurückzuweisen. Auslöser ist der islamistische Messerangriff in Solingen. Daraufhin fordert der damalige Oppositionspolitiker Friedrich Merz (CDU) öffentlich, Asylsuchende an den Grenzen zurückzuweisen. 

Die Fachabteilung kommt zu dem Ergebnis, dass Zurückweisungen „aus fachlicher Sicht mit erheblichen rechtlichen und politischen Risiken verbunden“ wären. Die Entscheidung ließe sich letztlich nur politisch treffen. 

„Mit erheblichen rechtlichen und politischen Risiken verbunden“

„Mit erheblichen rechtlichen und politischen Risiken verbunden“
E-Mail vom 28. August 2024

Wenige Tage später wird die Fachabteilung noch deutlicher. Man habe „intensiv geprüft“, das Ergebnis sei „eindeutig“. Die Zurückweisungen seien „europarechtlich nicht tragfähig, innenpolitisch fragwürdig und europapolitisch gefährlich“. 

„Europarechtlich nicht tragfähig“

„Europarechtlich nicht tragfähig“
Gesprächsvorbereitung für Minister*innenrunde zum Sicherheitspaket am 09. September 2024

Im Zentrum steht schon damals ein Artikel, der später Dobrindts Weisung tragen soll: Artikel 72 des Vertrags über die Arbeitsweise der EU (AUEV). Er beinhaltet eine juristische Ausnahme, die es Mitgliedstaaten ermöglicht, sich in bestimmten Fällen über EU-Recht hinweg zu setzen. Die Hürde ist sehr hoch, bislang hat kein Staat sie überwunden. Um sich darauf berufen zu können, bräuchte Deutschland belastbare Daten, die zeigen, dass die öffentliche Sicherheit und Ordnung gefährdet sind. Solche Daten lägen nicht vor, schreibt das Ministerium. Zudem stellt die Abteilung fest: Der Vorschlag aus der CDU, sich auf Artikel 72 zu berufen, ist ein Vorschlag der AfD.

Belastbare Daten liegen derzeit nicht vor

Belastbare Daten liegen derzeit nicht vor
Sachdarstellung für Frage aus dem Bundestag vom 11.09.2024

16. September 2024
Bundesinnenministerin Faeser weitet die Grenzkontrollen aus. Schutzsuchende können dennoch einen Asylantrag an den Grenzen stellen. 

6. November 2024 
Die Ampel-Koalition zerbricht und der Wahlkampf verändert die politische Tonlage. Die Union und ihr Kanzlerkandidat Merz versprechen, Schutzsuchende an der Grenze abzuweisen, sodass sie keinen Asylantrag stellen können. 

29. Januar 2025
Wie ernst es der Union mit ihrer Migrationspolitik ist und welche Grenzen sie dafür bereit ist einzureißen, zeigt sich bei der Abstimmung zum sogenannten 5-Punkte-Plan: Erstmals schafft die Union mit Stimmen der AfD eine Mehrheit für einen Entschließungsantrag – eine Absichtserklärung, die rechtlich nicht bindend ist, die Regierung allerdings zum Handeln auffordert. Das macht absehbar, wie die Migrationspolitik unter Bundeskanzler Friedrich Merz aussehen wird.

30. Januar 2025
Ein leitender Beamter aus dem Bundesinnenministerium bereitet sich vor. Der parteilose Staatssekretär Bernd Krösser bittet um eine Einschätzung, wie wahrscheinlich es sei, dass die EU gegen Deutschland gerichtlich vorgeht, wenn Asylsuchende an den Grenzen zurückgewiesen werden. Die Fachabteilung hält das für wahrscheinlich und rechnet vor, wie lange ein solches Verfahren dauern würde – insgesamt mehr als ein halbes Jahr. 

„Erst nach einiger Zeit“

„Erst nach einiger Zeit“
Sachdarstellung nach einer mündlichen Aufforderung von Staatssekretär Krösser vom 30. Januar 2025

Das bringt Staatssekretär Krösser zu einem Schluss, der später unter Dobrindt den Weg vorgibt: Bewusster Rechtsbruch. Es sei von einem „längeren Zeitraum“ auszugehen, bis der Europäische Gerichtshof (EuGH) über ein Eilverfahren entscheiden würde, als bislang angenommen. Das würde die Position derer stärken, „die zwar auch davon ausgehen, dass ein solches Vorgehen Deutschlands vor dem EuGH keinen Bestand hätte, aber man die Maßnahme ‘einfach mal macht, weil es dauert bis sie aufgehoben werden muss und sie in dieser Zeit ja faktisch wirkt’“. „Negative Folgen“ habe Deutschland ohnehin kaum zu befürchten. Im schlimmsten Fall müssten die Maßnahmen eben wieder gestoppt werden. 

Einfach machen

Einfach machen
Anmerkung von Staatssekretär Krösser vom 20. Januar 2025

23. Februar 2025 
Bei der Bundestagswahl wird die Union stärkste Fraktion im Bundestag. Merz bringt sich als Kanzler in Stellung. 

9. April 2025
Die Koalitionsvereinbarung wird veröffentlicht. Darin steht das migrationspolitische Ziel der Regierung: Asylsuchende sollen an den Grenzen zurückgewiesen werden

7. Mai 2025 
Alexander Dobrindt ist noch keine 24 Stunden Bundesinnenminister, als er die entscheidende Weisung unterzeichnet. Asylsuchende sollen ohne Prüfung an den Grenzen zurückgewiesen werden. Als Rechtsgrundlage nennt er in der Pressekonferenz Artikel 72 AEUV – jener Artikel, von dem seine eigene Fachabteilung mehrfach gesagt hatte, er lasse sich hier nicht anwenden. 
 

Schutzsuchenenden die Einreise verweigern

Schutzsuchenenden die Einreise verweigern
Weisung von Bundesinnenminister Dobrindt vom 7. Mai 2025

Mai 2025
Nach Dobrindts Weisung und der Pressekonferenz schicken die zuständigen Fachabteilungen zahlreiche Emails hin und her. In der Folge verschwindet der Hinweis auf den fragwürdigen Artikel 72. Am 7. Mai 2026 findet sich der Verweis auf Artikel 72 noch in einer Sprachregelung für die Presse. Zwei Tage später ist das geändert. Aus „in Anwendung von Artikel 72“ wird „im Einklang mit europäischen Recht“. 

Statt Artikel 72 nur „im Einklang mit europäischem Recht“

Statt Artikel 72 nur „im Einklang mit europäischem Recht“
Sprachregelung für Presse- und Öffentlichkeitsarbeit vom 15. Mai 2025

Die Fachabteilung erklärt in einer E-Mail, dass für Dobrindts Berufung auf Artikel 72 „bislang kein Sachverhalt bekannt ist, mit der diese Anwendung begründet werden soll“ und die Sprachregelung entsprechend geändert werden soll. 

„Bislang kein Sachverhalt bekannt“

„Bislang kein Sachverhalt bekannt“
E-Mail zur Änderung der Sprachregelung für Presse- und Öffentlichkeitsarbeit vom 15. Mai 2025

20. Mai 2025
Auch andere Ministerien gehen auf Distanz. Das Bundeskanzleramt und das Bundesjustizministerium streichen Artikel 72 aus ihren öffentlichen Stellungnahmen. 

Aus öffentlicher Stellungnahme gestrichen

Aus öffentlicher Stellungnahme gestrichen
Vermerk vom 20. Mai 2025

2. Juni 2025
Nach nur wenigen Tagen landet Dobrindts umstrittene Weisung vor Gericht. Das Berliner Verwaltungsgericht entscheidet, dass die Zurückweisung von Asylsuchenden gegen EU-Recht verstößt. Das Gericht macht auch klar, dass sich die Regierung nicht auf Artikel 72 berufen könne. Es fehle an der Darlegung, dass die öffentliche Sicherheit und Ordnung gefährdet sei.

Dobrindts Strategie: Gerichte ignorieren, Transparenz abschaffen

Trotz der Gerichtsentscheidung setzt Dobrindt seine Politik fort. Seine rechtswidrige Strategie scheint bislang aufzugehen. Die EU-Kommission hat bisher keine Klage eingereicht. Auch die Verfahren bei nationalen Gerichten, die bisher ausnahmslos gegen Dobrindts Grenzpolitik entschieden wurden, ignoriert er. Bislang setzt sich die Bundesregierung mit dem Argument darüber hinweg, es handle sich dabei bloß um Einzelfallentscheidungen.

Ein Urteil, das die Praxis insgesamt kippt, gäbe es erst am Ende eines jahrelangen Wegs durch die Instanzen bis zum Bundesverwaltungsgericht oder zum EuGH. Und den müssten ausgerechnet die Betroffenen selbst gehen. Es sind Schutzsuchende, die vor allem wollen, dass ihr Aufenthalt gesichert ist. Für einen Musterprozess über Jahre bleibt da wenig Kraft. 

Anfang Juni 2026 forderte die EU-Kommission Deutschland auf, die Kontrollen zu beenden. Doch Dobrindt möchte die Grenzkontrollen nach der Ankunft Zehntausender Menschen in der spanischen Exklave Ceuta sogar verlängern. Wie schief seine Rechtfertigungen gegenüber Brüssel sind, haben wir bereits gezeigt. Eine belastbare Begründung für den behaupteten Ausnahmefall hat der Minister bis heute nicht geliefert. 

Stattdessen greift Dobrindt nun das Gesetz an, das eine Politik offenlegt: das Informationsfreiheitsgesetz.

Zur Anfrage

Zu den Dokumenten

 


❤️ Hilf mit! Stärke die Informationsfreiheit mit Deiner Spende.

Read the whole story
jhunorss
1 day ago
reply
Share this story
Delete

Detecting Maven-Hijack-style risks in Gradle builds with the Dependency Analysis Gradle Plugin

1 Share

JVM builds have lived with “duplicate classes on the classpath” for years. Most of the time, it’s an annoying source of NoSuchMethodError or a “why did production suddenly break when I reordered dependencies?” kind of bug.

A recent academic paper, Maven-Hijack: Software Supply Chain Attack Exploiting Packaging Order, shows that this isn’t just a reliability problem, it’s also a supply-chain security problem.

DAGP 3.5.0 (Dependency Analysis Gradle Plugin), a popular community plugin, now provides another line of defense: in addition to warning you about duplicate classes, it checks binary compatibility when it finds them. That means it can spot cases where “the same class name” actually refers to different bytecode, which is exactly the kind of ambiguity Maven-Hijack exploits.

We’ll explore how to use DAGP to protect against Maven-Hijack style attacks in Gradle builds.

If you’ve heard about supply chain vulnerabilities in the npm / Nx ecosystem, we’ve also written about how Continuous GRC can help block compromised packages across your org.

What Maven-Hijack actually does

The Maven-Hijack paper describes a class of attacks that rely on two facts about the Java ecosystem:

  1. Maven packaging order is deterministic - When building an uber-JAR, Maven walks the dependency tree in depth-first order and packages classes in that order. Dependencies earlier in that traversal “win” when there are duplicates.
  2. The JVM classloader loads the first matching class on the classpath - At runtime, the Java classloader linearly scans the classpath and loads the first class whose fully-qualified name matches the one being requested.

That’s enough to build an attack:

  • The attacker finds a gadget dependency, a library that contains a class they’d love to hijack (e.g., a JDBC driver or some other central integration point).
  • They then compromise or control an infection dependency that appears earlier in the dependency tree and publish a new version that contains a class with the same fully qualified name as the one in the gadget dependency.
  • When the project is built, Maven packages the infection dependency first, so its version of the class is written into the uber-JAR before the legitimate one. At runtime, the JVM finds and loads the malicious class first, and the attacker controls that execution path.

The authors demonstrate this on the Corona-Warn-App backend by compromising a JSON schema library (the infection dependency) and adding a fake org.postgresql.Driver. They hijack the database connection logic without changing the application code or the declared database driver dependency:

Maven-Hijack attack on Corona App

The key insight is simple but uncomfortable:

If two jars on your classpath both contain com.example.Foo (or org.postgresql.Driver in the Corona App case) then the one that “wins” is governed by build tooling behavior and classpath order, not by your intention.

The paper evaluates mitigations like sealed JARs, Java Modules, and Maven Enforcer’s banDuplicateClasses. It finds that blocking duplicate classes at build time is one of the most actionable defenses in the ecosystem today.

Duplicate classes in Gradle builds

Gradle builds can run into similar classpath situations for a number of reasons:

  • Shaded or repackaged dependencies
  • Accidental inclusion of two versions of the same library
  • Using buildSrc (see issue 8301)
  • Generated code (e.g., protos) being produced in multiple places
  • “Fat jars” or custom packaging logic

In the best case, this results in warnings or obvious runtime failures. In the worst case, it silently changes which implementation is actually used at runtime, and that can be:

  • A subtle production bug
  • A performance regression
  • Or, in a Maven-Hijack scenario, a malicious override of a core class

The Dependency Analysis Gradle Plugin (DAGP) already helps with this by warning when a classpath contains duplicate class files.

In settings.gradle.kts:

plugins {
  id("com.autonomousapps.build-health") version "3.4.1"
}

In the root build.gradle.kts:

dependencyAnalysis {
  issues {
    all {
      onAny {
        severity("fail")
      }
    }
  }
}

In the app project build.gradle.kts:

plugins {
    application
}

group = "com.example.app"
version = "1.0.0"

application {
    mainClass.set("com.example.App")
}

dependencies {
    implementation(project(":trusty-lib"))	// Contains TrustyService class
    implementation(project(":malicious-lib"))	// Contains TrustyService class
}

Running ./gradlew buildHealth in the root project:

There were non-fatal dependency warnings.
See report at file:///build/reports/dependency-analysis/build-health-report.txt 

BUILD SUCCESSFUL in 993ms
102 actionable tasks: 78 executed, 24 from cache

In build-health-report.txt:

Advice for :app
Warnings
Some of your classpaths have duplicate classes, which means the compile and runtime behavior can be sensitive to the classpath order.

Source set: main
\--- compile classpath
     \--- com/example/trusty/TrustyService is provided by multiple dependencies: [:malicious-lib, :trusty-lib]
\--- runtime classpath
     \--- com/example/trusty/TrustyService is provided by multiple dependencies: [:malicious-lib, :trusty-lib]

The report will:

  • Report unused dependencies
  • Flag mis-configured configurations (api vs implementation, etc.)
  • Warn when a classpath has duplicate class files

Historically, DAGP didn’t know whether those duplicates were identical or not.

In some codebases, it’s common to see many proto-generated classes with the same names but slightly different binary signatures because of how the protos are used. That leads to order-dependent behavior: change the order of dependencies and suddenly a different version of a class “wins”.

That’s exactly the kind of ambiguity Maven-Hijack attacks weaponize.

DAGP 3.5.0: binary compatibility for duplicate classes

Starting in 3.5.0, DAGP adds a new capability on top of its existing duplicate-class detection:

When it finds duplicate classes on a classpath, it can check binary compatibility between those class files.

Conceptually, for each fully-qualified class name that appears in more than one jar, DAGP now asks:

  • Do these class files have the same binary signature?
    • Same fields (name, type, modifiers)
    • Same methods (name, parameters, return type, modifiers)
  • Or are they incompatible (methods missing, changed signatures, etc.)?

This gives you three useful buckets:

  1. No duplicates
    • Class appears in exactly one location → no ambiguity.
  2. Identical duplicates
    • Same class name, same binary signature.
    • Still worth investigating (why are you shipping the same class twice?), but less dangerous from a behavior point of view.
  3. Incompatible duplicates
    • Same class name, different binary signatures.
    • This is where things get dangerous:
      • Build order or classpath order decides which version of the class wins.
      • Reordering dependencies or tweaking shading rules can silently change runtime behavior.
      • In a supply-chain scenario, a malicious class could be slipped into one of those jars.

That third category is very close to what Maven-Hijack exploits: two jars both claim to provide the “same” class, but one of them is doing something different.

How this helps against Maven-Hijack-style attacks

To be clear, DAGP is not a silver bullet against Maven-Hijack. An attacker could, for example, ship a malicious class that preserves the same public surface but changes implementation details in ways that look “binary compatible”. Static analysis has limits.

However, this new check plus the existing duplicate-class warning gives you a powerful early-warning system:

  1. You find out you have duplicate classes at all
    • DAGP already reports “classpath has duplicate class files” so you can see when com.example.Foo exists in multiple dependencies.
  2. You know whether those duplicates are suspicious
    • If they are binary-incompatible, that’s a clear signal something is off:
      • Misconfigured shading
      • Two competing versions of a library
      • Generated code out of sync
      • Or, in the worst case, a potentially hijacked class
  3. You reduce the attack surface
    • The Maven-Hijack paper found that the most actionable defense was “fail the build when duplicate classes exist” (via Maven Enforcer).
    • DAGP lets you apply a similar policy in Gradle projects:
      • Fail or warn when duplicates exist
      • Escalate severity when duplicates are binary-incompatible
    • That doesn’t just protect against intentional attacks; it also forces you to clean up messy classpaths that are fragile by design.

Maven-Hijack is exploiting a design pattern that many builds already have. DAGP 3.5.0 gives you a way to see that pattern and treat it as a security and reliability issue, not just a “the build still passes so it must be fine” issue.

In settings.gradle(.kts):

plugins {
  id("com.autonomousapps.build-health") version "3.5.1"
}

Running ./gradlew buildHealth in the root project:

There were non-fatal dependency warnings.
See report at file:///build/reports/dependency-analysis/build-health-report.txt 

BUILD FAILED in 794ms
102 actionable tasks: 78 executed, 19 from cache, 5 up-to-date

Unlike before, DAGP now not only finds duplicate classes but also fails the build, a notable change in behavior:

In build-health-report.txt:

Advice for :app
Unused dependencies which should be removed:
  implementation(project(":malicious-lib"))

Warnings
Some of your classpaths have duplicate classes, which means the compile and runtime behavior can be sensitive to the classpath order.

Source set: main
\--- compile classpath
     \--- com/example/trusty/TrustyService is provided by multiple dependencies: [:malicious-lib, :trusty-lib]
\--- runtime classpath
     \--- com/example/trusty/TrustyService is provided by multiple dependencies: [:malicious-lib, :trusty-lib]

DAGP provides a task called reason to explain why the plugin is emitting advice regarding some dependency. Running ./gradlew :app:reason --id :malicious-lib:

------------------------------------------------------------
You asked about the dependency ':malicious-lib'.
You have been advised to remove this dependency from 'implementation'.
------------------------------------------------------------

Shortest path from :app to :malicious-lib for runtimeClasspath:
:app
\--- :malicious-lib

Source: main
------------
* Is binary-incompatible, and should be removed from the classpath:
  Expected METHOD com/example/trusty/TrustyService.greet(Ljava/lang/String;)Ljava/lang/String;, but was com/example/trusty/TrustyService.greet(Ljava/lang/String;)I

With DAGP 3.5.0 and the new binary-compatibility check in place, those duplicate-class reports become much more actionable: you can see which duplicates are merely redundant and which are truly suspicious.

The recommended steps:

  • Decide which library should “own” the TrustyService class.
  • Exclude the other copy (via Gradle’s exclude mechanisms or by fixing the dependency graph).
  • If the duplication is coming from a shaded jar, consider:
    • Applying relocation rules correctly, or
    • Pushing on the upstream project to avoid leaking internal classes.

Luckily, DAGP provides a fixDependencies task, which will take the advice and automatically apply it to Kotlin build scripts.

Running ./gradlew fixDependencies:

> Task :app:fixDependencies
Fixing dependencies for /Users/lkassovic/Downloads/dagp-duplicate-demo/app/build.gradle.kts.

We can then see that in app/build.gradle.kts, the malicious-lib dependency has been removed:

dependencies {
    implementation(project(":trusty-lib"))
}

Why Gradle is safer by default than Maven

It’s worth calling out that Gradle behaves more defensively then Maven by default.

Since Gradle 7.0, archive tasks like Jar and Zip fail the build when duplicate files are encountered inside the archive. This is controlled by the duplicatesStrategy on CopySpec, which defaults to DuplicatesStrategy.FAIL. In practice, that means if a transitive dependency tries to sneak in an extra file or any other duplicate resource, Gradle will stop the build instead of silently picking one. Maven, on the other hand, will merge all JAR contents together, which is what makes this kind of Maven-Hijack attack so easy to pull off in the first place.

What this means for your builds

Maven-Hijack shows that “classes with the same name in two jars” is not just a sloppy build pattern, it can be a supply-chain compromise vector. While Gradle isn’t Maven and your build may not be producing uber-JARs in the same way, the underlying risk is the same: if two class files claim to be the same class, and one of them behaves differently, you’ve given the build and classpath order the power to decide which one runs.

DAGP’s duplicate-class reporting and new binary-compatibility check help you detect that situation early, so you can treat it as a bug (or a potential incident), not a surprise in production.

DAGP closes one important gap inside Gradle builds. To get the bigger picture, seeing every build, artifact, and environment as production infrastructure, check out “Your toolchain IS production”, where we show how Develocity’s provenance and observability features help secure and stabilize the whole delivery pipeline.

If you want to learn more about the intricacies of the JVM ecosystem from the author and primary contributor to the Dependency Analysis Gradle Plugin, check out Tony Robalik’s post Is the Java ecosystem cursed? A dependency analysis perspective.

Read the whole story
jhunorss
2 days ago
reply
Share this story
Delete

Microsoft’s stance on zero day exploits is a dumpster fire of their own making

1 Share

Recently, somebody going by the name of Nightmare Eclipse has been having an online beef with Microsoft around security vulnerabilities they claim they had been trying to report. Their posts read like those of a former Microsoft employee. They’ve been dumping proof of concept exploits for said vulnerabilities publicly.

As a defender myself, it’s not great — but it is what it is; Microsoft should make better products. In an age where every vendor is selling magic beans AI boxes that can “discover every vulnerability”, it is unsurprisingly real humans who are finding impactful vulnerabilities still.

The vulnerabilities range from interesting to nothing. For example, one interesting one — still unpatched — is a complete and working BitLocker bypass in default deployments, allowing you bypass encryption on a device.

Do I support what Nightmare Eclipse is doing with this one? Not really, it feels weird at times, almost like they think they’re entitled to payment — their blog is also awfully specific about certain Microsoft colleagues. There’s presumably more going on behind the scenes than is known.

This Microsoft blog about the situation caught my attention, though:

A shared responsibility: Protecting customers through Coordinated Vulnerability Disclosure

In particular, this bit (my highlights):

Hang on.. proof of concept exploit creation and distribution for zero days is “criminal activity” now? Who in CELA signed off that wording? Microsoft are the biggest distributor of zero days, via Github. Not following made up “responsible disclosure” processes is not illegal.

Nightmare Eclipse was also kicked off GitHub (owned by Microsoft), Gitlab (a Microsoft partner), they were doxxed on Twitter and had their MSRC — Microsoft vulnerability reporting portal — account disabled. It’s quite difficult to ‘responsibly’ report future vulnerabilities when you have been banned.

GitHub has long been a source for zero days exploits in competitor products — it still is. While I worked there GitHub had a policy saying they wouldn’t remove them. By continually removing just exploits for their own products from Github and declaring “criminal activity”, it’s a rubicon you shouldn’t cross.

Microsoft is attempting to misuse its ownership of Github to protect only its own products, and misuse its extensive links to law enforcement by branding publishing information about vulnerabilities in its own products as criminal behaviour, as best I can read that blog.

Maybe there’s more to it that isn’t mentioned in the blog — but in which case, either mention it or shut up and let law enforcement take over.

Responsible disclosure quite often is framed to protect the product owner, not the customer — using it to try to criminally prosecute people is a new low.

Some history

Before I joined Microsoft, back in 2019, somebody called SandboxEscaper published a few proof of concepts online for Microsoft products, as zero days.

Microsoft hired her. SandboxEscaper did good work.

Now, to be clear, SandboxEscaper claims they aren’t Nightmare Eclipse. I’m not linking the two, either — I’m making the point Microsoft has very publicly hired somebody for doing the same thing Microsoft’s latest blog alleges is criminal behaviour.

There’s a lot of history.

For example, Microsoft knowingly employed somebody who would repeatedly talk about selling exploits to Russia and Iran, publicly, while working there — for years.

They have a long history of hiring people, some with criminal convictions for hacking offenses — and hiring people who’ve posted zero days publicly.

Microsoft have also purchased zero day exploits in their own products from exploit brokers.

If Microsoft’s tactic is to try to criminalise not following often arbitrary “responsible disclosure” frameworks, good luck defending that in court — because there’s a whole clown car of prior decision making within Microsoft and facts which would emerge in that process.

It would also profoundly change the security industry for the worst, pivoting protecting the interests of business over the interest of collective cyber defence. Microsoft should be concentrating on making better, more secure products that one person can’t run rings around.


Microsoft’s stance on zero day exploits is a dumpster fire of their own making was originally published in DoublePulsar on Medium, where people are continuing the conversation by highlighting and responding to this story.

Read the whole story
jhunorss
2 days ago
reply
Share this story
Delete
Next Page of Stories