Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
152317 stories
·
33 followers

TIOBE Index for January 2026: C Pushes Ahead as the Chase Group Shifts Again

1 Share

January 2026 TIOBE Index: Python stays far ahead; C strengthens at #2, Java edges past C++, C# is 2025’s winner; Delphi returns, R holds #10.

The post TIOBE Index for January 2026: C Pushes Ahead as the Chase Group Shifts Again appeared first on TechRepublic.

Read the whole story
alvinashcraft
3 hours ago
reply
Pennsylvania, USA
Share this story
Delete

What surprised us the most at CES 2026

1 Share

There are some things you can reliably expect to see at the Consumer Electronics Show every year. Companies will announce big splashy TVs, there's going to be a bunch of new gadgets for charging your other gadgets, and the odds are good that a robot or two is going to hilariously malfunction.

But CES always manages to sneak in a few surprises, whether with what has been announced, what hasn't made an appearance, and trends that no one saw coming. We've rounded up the biggest CES 2026 curveballs so far.

Motorola made a book-style foldable

Motorola has really gotten into a groove with its clamshell-style flip phones over the past few years. …

Read the full story at The Verge.

Read the whole story
alvinashcraft
3 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Now everyone can chat on Stack Overflow

1 Share
Registered users can now join public chat rooms from day one, making it easier to connect, learn, and participate in the community
Read the whole story
alvinashcraft
3 hours ago
reply
Pennsylvania, USA
Share this story
Delete

OWASP Top 10 2025: What's changed and why it matters

1 Share

The OWASP Foundation has released the eighth edition of its influential "Top 10 Security Risks" list for 2025, introducing significant changes that reflect the evolving landscape of application security. Based on analysis of more than 175,000 Common Vulnerabilities and Exposures (CVEs) records and feedback from security practitioners across the globe, this update addresses modern attack vectors. Here's everything you need to know about what's changed, why these changes matter, and how to protect your systems.

💡 Join GitLab Transcend on February 10 to learn how agentic AI transforms software delivery. Hear from customers and discover how to jumpstart your own modernization journey. Register now.

What's new in 2025?

The shift from 2021 (the last time the list came out) to 2025 represents more than minor adjustments, it's a fundamental shift in application security. Two entirely new categories entered the list and one category was consolidated into another, which highlights emerging risks that traditional testing often misses.

These additions and shifts can be seen in the chart below:

OWASP Top 10 - Changes from 2021 to 2025

Two new categories

  • A03: Software Supply Chain Failures: Expands the 2021 category "Vulnerable and Outdated Components" to encompass the entire software supply chain, including dependencies, build systems, and distribution infrastructure. Despite having the fewest occurrences in testing data, this category has the highest average exploit and impact scores from CVEs.
  • A10: Mishandling of Exceptional Conditions: Focuses on improper error handling, logical errors, and failing open scenarios. This addresses how systems respond to abnormal conditions.

Major ranking changes

  • Security Misconfiguration surged from #5 (2021) to #2 (2025), now affecting 3% of tested applications.
  • Server-Side Request Forgery (SSRF) has been consolidated into A01: Broken Access Control.
  • Cryptographic Failures dropped from #2 to #4.
  • Injection fell from #3 to #5.
  • Insecure Design moved from #4 to #6.

Why these changes were made

The OWASP methodology combines data-driven analysis with community insights. The 2025 edition analyzed 589 Common Weakness Enumerations (CWEs), which is a substantial increase from the approximately 400 CWEs in 2021. This expansion reflects the growing complexity of modern software systems and the need to capture emerging threats.

The community survey component addresses a fundamental limitation: testing data essentially looks into the past. By the time security researchers develop testing methodologies and integrate them into automated tools, years may have passed. The two community-voted categories ensure that emerging risks identified by frontline practitioners are included, even if they're not yet prevalent in automated testing data.

The rise of Security Misconfiguration highlights an industry trend toward configuration-based security, while Software Supply Chain Failures acknowledges the rise of sophisticated attacks targeting compromised packages.

Using GitLab Ultimate for vulnerability detection and management

GitLab Ultimate provides comprehensive security scanning to detect risks across the 2025 OWASP Top 10 categories. For instance, the end-to-end platform analyzes your project's source code, dependencies, and infrastructure definitions. It also uses Advanced Static Application Security Testing (SAST) to detect injection flaws, cryptographic failures, and insecure design patterns in source code. Infrastructure as Code (IaC) scanning finds security misconfigurations in your deployment definitions. Secret Detection prevents the leakage of credentials, and Dependency Scanning uncovers libraries with known vulnerabilities in your software supply chain, which directly addresses the new A03 category for Software Supply Chain Failures.

In addition:

  • Dynamic Application Security Testing (DAST) probes your deployed application for broken access control, authentication failures, and injection vulnerabilities by simulating attack vectors.
  • API Security Testing probes your API endpoints for input validation weaknesses and authentication bypasses.
  • Web API Fuzz Testing uncovers how your application handles exceptional conditions by generating unexpected inputs, which directly addresses the new A10 category for mishandling of exceptional conditions.

Security scanning integrates seamlessly into your CI/CD pipeline, running when code is pushed from a feature branch so developers can remediate vulnerabilities before they reach production. Security findings are consolidated in the Vulnerability Report, where security teams can triage, analyze, and track remediation. GitLab also allows you to leverage AI agents such as Security Analyst Agent, available in GitLab Duo Agent Platform, to quickly determine what are the most critical vulnerabilities and how to take action on them.

You can enforce additional controls through merge request approval policies and pipeline execution policies to ensure security scanning runs consistently across your organization. Customer Success and Professional Services teams at GitLab ensure you derive value from an investment in GitLab in a timely manner.

Deliver secure software faster with security testing in the same platform developers already use. To learn more, visit our application security testing solutions site.

The OWASP Top 10 2025: Complete breakdown

A01: Broken Access Control

What it is

Failures in enforcing policies that prevent users from acting outside their intended permissions, leading to unauthorized access.

Impact on your system
  • Unauthorized information disclosure
  • Complete data destruction or data modification
  • Privilege escalation (users gaining admin rights)
  • Viewing or editing other users' accounts
  • API access from unauthorized or untrusted sources
Notable CWEs

A02: Security Misconfiguration

What it is

Systems, applications, or cloud services configured incorrectly from a security perspective.

Impact on your system
  • Exposure of sensitive information through error messages
  • Unauthorized access through default accounts
  • Unnecessary services or features enabled
  • Outdated security patches
  • Server does not send security headers or directives
Notable CWEs

A03: Software Supply Chain Failures

What it is

Breakdowns or compromises in building, distributing, or updating software through vulnerabilities or malicious changes in dependencies, tools, or build processes.

Impact on your system:
  • Compromised packages introducing backdoors
  • Malicious code injected during build processes
  • Vulnerable dependencies cascading through your application
  • Use of components from untrusted sources in production
  • Changes within your supply chain are not tracked
Notable CWEs

A04: Cryptographic Failures

What it is

Failures related to lack of cryptography, insufficiently strong cryptography, leaking of cryptographic keys, and related errors.

Impact on your system:
  • Sensitive data exposure (passwords, credit cards, health records)
  • Man-in-the-middle attacks
  • Data breach through weak encryption
  • Key compromise leading to system-wide exposure
  • Regulatory compliance failures (GDPR, PCI DSS)
Notable CWEs

A05: Injection

What it is

System flaws allowing attackers to insert malicious code or commands (SQL, NoSQL, OS commands, LDAP, etc.) into programs.

Impact on your system
  • Data loss or corruption through SQL injection
  • Complete database compromise
  • Server takeover through command injection
  • Cross-site scripting (XSS) attacks
  • Information disclosure
  • Denial of service
Notable CWEs

A06: Insecure Design

What it is

Weaknesses in design representing different failures, expressed as missing or ineffective control design—architectural flaws rather than implementation bugs.

Impact on your system
  • Weak password reset flows
  • Missing authorization steps
  • Flawed business logic allowing bypasses
  • Inadequate threat modeling leading to blind spots
  • Design patterns that fail under attack scenarios
Notable CWEs

A07: Authentication Failures

What it is

Vulnerabilities allowing attackers to trick systems into recognizing invalid or incorrect users as legitimate.

Impact on your system
  • Account takeover and credential stuffing
  • Session hijacking
  • Brute force attacks succeeding
  • Weak password recovery mechanisms exploited
  • Multi-factor authentication bypass
Notable CWEs

A08: Software or Data Integrity Failures

What it is

Code and infrastructure failing to protect against invalid or untrusted code/data being treated as trusted and valid.

Impact on your system
  • Unsigned updates allowing malicious code injection
  • Insecure deserialization leading to remote code execution
  • CI/CD pipeline compromise
  • Auto-update mechanisms exploited
  • Tampered software artifacts
Notable CWEs

A09: Security Logging & Alerting Failures

What it is

Insufficient logging and monitoring with inadequate alerting, which makes rapid response difficult.

Impact on your system
  • Attacks go undetected for extended periods
  • Breach investigation becomes impossible
  • Compliance violations from lack of audit trails
  • Delayed incident response
  • Inability to determine scope of compromise
Notable CWEs

A10: Mishandling of Exceptional Conditions

What it is

Programs failing to prevent, detect, and respond to unusual and unpredictable situations, which leads to crashes, unexpected behavior, or vulnerabilities.

Impact on your system
  • Information disclosure through verbose error messages
  • Denial of service from unhandled exceptions
  • State corruption from improper error handling
  • Race conditions exploited
  • Systems failing open instead of closed
  • Application crashes exposing sensitive data
Notable CWEs

Prevention and remediation best practices

GitLab provides tools to enable you to not only quickly find and remediate vulnerabilities within the OWASP Top 10, but also to prevent them from making it into your production system. By following these best practices you can enhance and maintain your security posture:

Automated security scanning for all repositories

  • Perform SAST Scanning to detect insecure design patterns like plaintext password storage, inadequate error handling, and missing encryption during code review, catching design flaws early in the development lifecycle.
  • Perform Secret Detection to identify credentials in configuration files, environment variables, and code, preventing plaintext password storage and ensuring secrets are properly managed through GitLab's CI/CD variables with masking and encryption.
  • Perform DAST Scanning to detect broken access control vulnerabilities
  • Perform Dependency Scanning to scan project dependencies against vulnerability databases, identifying known CVEs in direct and transitive dependencies across multiple package managers (npm, pip, Maven, etc.).
  • Perform Container Scanning to analyze Docker images for vulnerable base layers and packages, ensuring container supply chain security before deployment.
  • Perform IaC Scanning to check your infrastructure definition files for known vulnerabilities.
  • Leverage API Security Tools to secure and protect web APIs from unauthorized access, misuse, and attacks.
  • Perform Web API Fuzz Testing to discover bugs and potential vulnerabilities that other QA processes might miss.

Security Results in MR

View vulnerabilities detected in MR with diff from feature branch to main branch.

Understand your security posture

Security Inventory

Use Security Inventory to viewing enabled security scanners and vulnerabilities.

Set up prevention and maintain documentation

  • Configure Security Policies to block merges or deployments when high-severity vulnerabilities are detected in dependencies, enforcing security standards automatically.
  • Use Compliance Frameworks to enforce organizational security standards through automated policy checks that verify encryption requirements, credential management practices, and secure workflow implementations are followed.
  • Use GitLab Wiki and repository documentation to maintain security design principles, approved patterns, and architectural decision records that guide developers toward secure-by-design implementations.
  • Implement merge request approval rules requiring security architect review for features involving authentication, authorization, encryption, or sensitive data handling, ensuring design-level security validation.
  • Create tests to verify input validation and allowlist approaches for file paths
  • Use GitLab Issues and Epics to document security requirements and threat models during the design phase, creating a traceable record of security decisions and ensuring security considerations are addressed before implementation begins.

Security Policy Dashboard

View and set Security Policies scoped to instance, group, or project.

Leverage AI

  • Use Code Suggestions for proactive guidance during development, suggesting secure design patterns like proper password hashing (bcrypt, Argon2), encrypted storage mechanisms, and appropriate error handling that doesn't leak sensitive information.
  • Use Security Analyst Agent to review detected insecure design vulnerabilities in context, explaining the architectural implications, assessing risk based on your application's threat model, and providing remediation strategies that address root design flaws rather than just symptoms.
  • Review your code using AI to help ensure consistent code review standards in your project.

GitLab Security Analyst Agent

Leverage Security Analyst Agent to quickly triage and assess security vulnerabilities.

Key takeaways for development teams

  • Supply chain security is critical: With A03's addition and high-impact scores, securing your software supply chain is no longer optional. Implement SBOM tracking, dependency scanning, and integrity verification throughout your pipeline.
  • Configuration matters more than ever: The rise to #2 shows that configuration-based security is now a primary attack vector. Automate configuration verification and implement IaC with security baked in.
  • Traditional threats persist: While Injection and Cryptographic Failures dropped in ranking, they remain critical. Don't deprioritize them just because they've fallen on the list.
  • Error handling is security: The new A10 category emphasizes that how your application handles failures is a security concern. Implement secure error handling from the start.
  • Testing must evolve: The expanded CWE coverage (589 vs. 400 in 2021) means testing strategies must be comprehensive. Combine SAST, DAST, source code analysis, and manual penetration testing for effective coverage.

Explore our GitLab Security and Governance Solutions and security scanning documentation to start strengthening your security posture today.

Read the whole story
alvinashcraft
3 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Future CSS: :drag (and Maybe ::dragged-image?)

1 Share

Now, I know what you’re thinking. Yet another CSS pseudo-class… But I think this suggestion is rather cool.

Earlier this year, it was proposed to add a new pseudo-class, :drag, that would enable developers to apply styles when an element is being actively dragged by the user. Currently, CSS lacks a mechanism to detect drag interactions, making it difficult to manage UI behaviors that depend on this action without relying on JavaScript.

No JavaScript! I like the idea of having a pseudo-class dedicated to this function rather than going through the classList.toggle() route.

But, how would this work, though?

To understand, you first have to know that the HTML Drag and Drop API. Some of the events it fires include: 

  • drag (fires every few milliseconds when the element is dragged), 
  • dragstart (event fires at the initial drag), and 
  • dragend (event fires when the dragging the element stops).

Let’s take a quick look at how these drag-and-drop events work in JavaScript in order to understand how they would translate in CSS. Imagine we have seven button elements in a <div> :

<menu class="menu-bar">
  <li><button>Home</button></li>
  <li><button>Products</button></li>
  <li><button>Services</button></li>
  <li><button>About</button></li>
  <li><button>Contact</button></li>
  <li><button>Blog</button></li>
  <li><button>Careers</button></li>
</div>

We can make the entire .menu-bar draggable by slapping an attribute on it:

<menu class="menu-bar" draggable="true">
  <!-- etc. -->
</div>

For our CSS, we simply give the is-dragging class some styling, which will be applied only when the element is dragged or moved:

In CSS, we can set up an .is-dragging class that we’ll set on the element with JavaScript when it’s in the process of being dragged. These are the styles we apply to the element when that’s happening:

.is-dragging {
  box-shadow: 0 4px 12px rgba(0 0 0 / 0.15);
  background: #fff;
  transform: translate(1px);
  opacity: 0.2;
  scale: 1.2;
}

And here’s the JavaScript to toggle between the start of the mouse drag and its end. It listens for a dragstar event and adds the .is-dragging class to the .menu-bar. And when we drop the .menu-bar, the dragging fun stops and the .is-dragging class is removed:

menuBar.addEventListener("dragstart", (event) => {
  event.target.classList.add("is-dragging");
});

menuBar.addEventListener("dragend", (event) => {
  event.target.classList.remove("is-dragging");
});

Our output would look something like this. Drag the dropdown element to see:

Not bad! When the menu bar is dragged, it retains an image of itself in its original position that is styled with the .is-dragging class. And while we were totally able to knock this out with JavaScript, how cool would it be to have that proposed :drag pseudo-class to abstract all that script-y stuff:

.menu-bar:drag {
  cursor: grabbing;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  background: #fff;
  transform: translate(1px);
  opacity: 0.2;
  scale: 1.2;
}

+1 for performance! +1 for one less dependency! +1 for maintainability!

How about the preview image?

Did you know we can style the actual element itself as it’s being dragged around the screen? That’s called the preview image and we can replace it with a <div> that we can add custom styling to.

A horizontal menu of buttons in a single row being dragged by a mouse cursor. We can see the menu in its original position and its current dragged position.
The browser displays a “preview” of the element as it is dragged.

It’s just a little more JavaScript using the dataTransfer.setDragImage() function:

const dragPreview = document.createElement("div");

dragPreview.textContent = "📦 Dragging...";
dragPreview.style.cssText = `
  background: #fff6d6;
  border: 2px dashed orange;
  border-radius: 0.5rem;
  color: #333;
  padding: 0.5rem 1rem;
`;

document.body.appendChild(dragPreview);

// This replaces the default drag preview
event.dataTransfer.setDragImage(dragPreview, 0, 0);

// Remove after the event fires
setTimeout(() => dragPreview.remove(), 0);

Here’s where I’ll go out on a limb and suggest another CSS pseudo specifically for that ::drag-image. Imagine being able to sidestep all that JavaScript and straight-up write the styles in CSS:

::drag-image {
  content: "📦 Dragging...";
  padding: 0.5rem 1rem;
  background: #fff6d6;
  color: #333;
  border: 2px dashed orange;
  border-radius: 0.5rem;
}

I suppose it could be a pseudo-class instead, but it feels like a pseudo-element makes more sense since we’re talking about a specific object rather than a state.

I opened an issue for that — give it a thumbs-up if you’d find it handy to have a ::drag-image pseudo-element like that. The CSSWG is already slated to discuss the :drag proposal. If that gets baked into the specifications, then I’d push for the pseudo-element, too.

Thoughts?

Yea or nay for drag-related pseudos? Would you reach for something like that, or do you feel steps on JavaScript’s toes too much?


Future CSS: :drag (and Maybe ::dragged-image?) originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.

Read the whole story
alvinashcraft
3 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Mastering SQL Server Indexing: What Every .NET Developer Needs to Know

1 Share
At the upcoming Visual Studio Live! Las Vegas developer conference, SQL expert Denny Cherry will share essential indexing strategies to boost performance in SQL Server databases--from 2000 to 2025. Here, Denny explains more about his session in which .NET devs can learn best practices, common mistakes, and how to optimize apps with smarter indexing.
Read the whole story
alvinashcraft
3 hours ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories